--- In perl-beginner@yahoogroups.com, "ramesh.govinda"
<ramesh.govinda@...> wrote:
>
> Following is another code using loop. But I have some problem in
the
> loop as the file is copied to all my directories and it is unable
to
> copy the z.txt to the subdirectories. eg: /abc/FD, pqt/FD, /sde/FD.
Hello Ramesh
Perhaps to following (untested) code will do what you want.
Chris
> #!\usr\bin\perl
#!/usr/bin/perl # those are 'forward' slashes.
> use warnings;
use strict; #this pragma should be declared. It will catch and
report errors in your code.
use File::Path;
use File::Copy;
> mkdir("F:/usr/eg/abc", 0777) || print $!;
> mkdir("F:/usr/eg/abc/FD", 0777) || print $!;
> mkdir("F:/usr/eg/pqt", 0777) || print $!;
> mkdir("F:/usr/eg/pqt/FD", 0777) || print $!;
> mkdir("F:/usr/eg/sde", 0777) || print $!;
> mkdir("F:/usr/eg/sde/FD", 0777) || print $!;
my @dirs = qw[ F:/usr/eg/abc/FD F:/usr/eg/pqt/FD F:/usr/eg/sde/FD];
# no need to specify '0777'. (It is the default)
for my $dir (@dirs) {
mkpath($dir) or die $!;
}
> print "Enter the file to copy: ";
> $fl = <>;
> chomp($fl);
chomp(my $file = <>);
for my $dir (@dirs) {
my ($rename) = $dir =~ m!/(\w+)/FD$!;
copy($file, "$dir/$rename.txt") or die $!;
}
> use File::Copy;
> opendir DIR, "."; # . is the current directory
>
> while ( $filename = readdir(DIR) )
> {
> if(-d $filename && $filename ne'.' && $filename ne '.')
> {
> print "copied $fl to: " , $filename,"\n";
> copy($fl,$filename);
> }
> }
> rename('F:/usr/eg/abc/FD/z.txt','F:/usr/eg/abc/FD/abc.txt');
> rename('F:/usr/eg/pqt/FD/z.txt','F:/usr/eg/pqt/FD/pqt.txt');
> rename('F:/usr/eg/sde/FD/z.txt','F:/usr/eg/sde/FD/sde.txt');
>