#!/perl use warnings; use File::Copy; use File::Find; find(\&wanted, 'M:\\(Directory)'); sub wanted { if ($File::Find::name =~ /\.BAK$/) { my $copyname = "I:\\(Directory0)\\(Directory1)\\(Directory2)/$_"; print "Copying $_ from $File::Find::dir to $copyname\n"; copy("$File::Find::name","$copyname"); } } $dir = "M:\\(Directory)"; print "Starting Delete Process\n\n"; opendir(DIR, "$dir") || die "No $dir: $!"; @files = grep(!/^\./, readdir(DIR)); @files = sort @files; closedir(DIR); foreach (@files) { print $_, "\n"; if (/\.BAK$/i) { unlink ("$dir/$_") if (-f "$dir/$_") || print "Unable to delete $_: $!"; } }