use Path::Class qw/file dir/; for my $file ( dir($var1,$var2,$var3)->children ) { next if $file->is_dir || $file->basename !~ /.+\.ksh$/; $file->copy_to($target) or die "Failed to copy $file to $target"; }