use strict; use warnings; open(my $table, "<", "table.txt") or die "Cannot open Tables"; my %ids2proteins; while (<$table>){ chomp; my ( $protein, $nbr) = split ; next unless $nbr; $ids2proteins{$nbr} = $protein; } close $table; open(my $val, "<", "values.txt") or die "Cannot open Values"; while (<$val>){ chomp; next unless length $_ > 1; next unless my $prot = $ids2proteins{$_}; print "$prot => $_ \n"; } close $val;