for my $dir ( @directories ) { find(\&process_directories, $dir); } sub process_directories { if ($File::Find::dir ne $dir) { $File::Find::prune = 1; return 0; } return 0 if ($_ !~ /\.rtf$/); copy($File::Find::name, "C:\\testfiles\\$_") or die "Failed to copy $_: $!\n"; return 1; }