# opening file 1 # ... my %hash; while (my $line1=) { chomp($line1); my @ar = split(/\t/,$line1); $hash{$ar[1]} = $ar[3]; } close TR; open my $SC, "<", $file2 or die "Error blah blah... $!"; while (my $line2 = <$SC>) { my ($id, $val) = split /\t/, $line2; my $val_file1 = $hash{$id}; if ( $val > $val_file1 - $margin and $val < $val_file1 + $margin) { # print out something } } close $SC;