# read in file one and place into a hash my $line_number = 1; while ( <$infile1> ) { chomp; $hash1{$line_number} = $_; $line_number++; } # read in file 2 and place in a hash $line_number = 1; while (<$infile2>) { chomp; $hash2{$line_number) = $_; $line_number++; } # determine the file with the largest number of keys my @keys1 = keys %hash1; my @keys2 = keys %hash2; my $NoK1 = @keys1; my $NoK2 @keys2; if ($NoK1 > $NoK2) { for $key (sort {$a <=> $b} keys %hash1) { if (!defined $hash2{$key}) { next; } elsif ($hash1{$key} eq $hash2{$key}) { #do nothing? next; } else { print "Line number $key in both files is different"; } } # the rest of the code you can figure out from here ...