use strict; use warnings; my %seeninfile1; open FH,"<",$file1 or die "Can't open $file1: $!\n"; while () { $seeninfile1{$_}++; } close(FH); open FG,"<",$file2 or die "Can't open $file2: $!\n"; while () { ($key,$number)= split; if ($seeninfile1{$key} { #do whatever you want to do if key is not in file1 } else { #do whatever you want to do if key is in file1 } } close(FH);