http://qs321.pair.com?node_id=757753

grashoper has asked for the wisdom of the Perl Monks concerning the following question:

update..I changed to use file:copy:recursive.. here is the code which works just fine.
use File::Copy::Recursive; use File::Find; use strict; my $srcdir='c:\\inetpub\\performancetesting\\output\\new\\'; my $destdir='c:\\'; File::Copy::Recursive::dircopy $srcdir, $destdir or die "Copy failed: +$!";
as part of a project I am working on I need to copy part of a directory tree to the root, this is to move files being processed by something else so that I can load them into a db. unfortunately its not working out yet, all i get is my warning can't open the file yet for each folder what stupid mistake am I making this time
use File::Copy; my $dir="c:\\inetpub\\performancetesting\\output\\new\\mlx\\"; my $dir2="c:\\"; lista_dirs($dir,$dir); sub lista_dirs{ my ($dir,$dirname)=@_; my (@dirs,@files); opendir DIR, "$dir"; my @dircontent=grep {/[^\.]/} readdir(DIR); closedir DIR; @dirs=(); @files=(); foreach(@dircontent){ if (-d "$dir/".$_){ push @dirs,$_; copy($dir,$dir2); } else { push @files,$_ if($_=~/\.txt$/); } } foreach my $d(@dirs){ lista_dirs("$dir/".$d,$d); print $d,"\n" ; #print $dir; prints full path? } }# not sure if this is going to work or not. opendir(IN,"$dir") or die "opening directory failed:$!"; while (defined (my $file = readdir(IN)) ) { push (my @files, $file); foreach my $filename (@files) { copy ("$dir".$filename, "$dir2".$filename) or warn "Can't open the fil +e yet $filename\n:$!"; } } closedir(IN);