use File::DirCompare; use File::Basename; $x='directory1'; $y='directory2'; File::DirCompare->compare("$x","$y", sub { my ($a, $b) = @_; if (! $b) { printf "Only in %s: %s\n", dirname($a), basename($a); } elsif (! $a) { printf "Only in %s: %s\n", dirname($b), basename($b); } else { print "Files $a and $b differ\n"; } });