use strict; use warnings; use File::Find; find(\&process, 'F:'); sub process() { my $f = uc($File::Find::name); if ( -f $f) { my $c = $f; $c =~ s/^F:/C:/; if (-e $c) { if (-s $f != -s $c) { print "unequal size: $f\n"; } } else { print "missing in destination: $c\n"; } } }