use File::Basename; my ($scriptname, $scriptdir) = fileparse($0); while($file = shift(@files)){ my($name, $dir) = fileparse($file); unless($dir eq $scriptdir and $scriptname eq $name){ ... } }