http://www.perlmonks.org?node_id=880841

sub checkfiles() { my ($folder,$localfolder,$filesref) = shift; foreach my $file (@$filesref) { chomp($file); if(-f $file) { my @output = `diff $folder/$file $localfolder/ +$file`; my $size = scalar @output; if($size > 0) { print $file."\n"; } } elsif(-d $file) { my $innerfolder = $folder."/".$file; my $innerlocalfolder = $localfolder."/".$file; my @innerfiles = `ls -1 $innerfolder`; checkfiles($innerfolder, $innerlocalfolder, \@ +innerfiles); } } }