hi folks, i tryed to copy a whole direktorytree to another and made a
routine that does not need a Module and run on several platformes. I want to
know what you think about it, how can I make it better ??
here it comes:
----
#!perl.exe
local ($from, $to, $del)= @ARGV;
unless ($from ne '' && $to ne '')
{
print "move.pl [from] [to] ([del])\n";
print "if you use del, you move the files, otherwise it will be copyed.\n";
exit;
}
mkdir($to);
my $num;
my $r;
my $w;
my $data;
opendir(DIR, "$from") or print " $!";
while($data = readdir(DIR))
{
$num++;
$r = 'read_'.$num;
$w = 'write_'.$num;
next if($data eq '.');
next if($data eq '..');
if(-d "$from/$data")
{
mkdir("$to/$data");
subdir($num, $data);
unlink("$from/$data") if($del eq 'del');
}
else
{
open($r, "<$from/$data") or print "$!";
open($w, ">$to/$data") or print "$!";
while($str = <$r>)
{
print $w $str;
}
close($r);
close($w);
unlink("$from/$data") if($del eq 'del');
}
}
closedir(DIR);
exit;
sub subdir
{
my $subnum = shift;
my $d = shift;
my $r = 'read_'.$num;
my $w = 'write_'.$num;
my $data;
opendir(DIR, "$from/$d") or print "$!";
while($data = readdir(DIR))
{
$num++;
$r = 'read_'.$num;
$w = 'write_'.$num;
next if($data eq '.');
next if($data eq '..');
if(-d "$from/$d/$data")
{
mkdir("$to/$d/$data");
subdir($num, "$d/$data");
unlink("$from/$d/data") if($del eq 'del');
}
else
{
open($r, "<$from/$d/$data") or print "$!";
open($w, ">$to/$d/$data") or print "$!";
while($str = <$r>)
{
print $w $str;
}
close($r);
close($w);
unlink("$from/$d/data") if($del eq 'del');
}
}
closedir(DIR);
return;
}
----
_______________________________________________
Perl-Win32-Web mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-web