use strict; use warnings; sub compare { my ($log, $olog) = @_; my %logHash; open my $XR, '<', $log || die "Failed to open $log: $!"; $logHash{$_}++ while <$XR>; close $XR; open my $OXR, '<', $olog || die "Failed to open $log: $!"; $logHash{$_}-- while <$OXR>; close $OXR; my $diffs = 0; for my $match (sort keys %logHash) { next unless $logHash{$match}; if ($logHash{$match} > 0) { print "Line missing from $olog: $match\n" if $diffs++ < 10; } elsif ($logHash{$match} < 0) { print "Line missing from $log: $match\n" if $diffs++ < 10; } } return $diffs; }