use File::Basename; my @files = glob('/path/to/files/*'); foreach my $file (@files) { my $name = basename($file); if (! -x "/new_path/$name") { # copy file here } }