use strict; use warnings; open my $fh, '<', $FILE2 or die "Can't open file2: $!\n"; my %hash = map split, <$fh>; open $fh, '<', $FILE1 or die "Can't open file1: $!\n"; while ( <$fh> ) { my ( $k, $v ) = split; my $ok = ( defined $hash{$k} and $hash{$k} == $v ) ? 'OK' : 'WRONG' ; print join( "\t", $k, $ok, $v ), "\n"; }