use warnings; use strict; my $infile1 = "InParanoid_Modified.txt"; my $infile2 = "IPArray.txt"; my $outfile = "IPEnsembl.txt"; open (IN1, $infile1) or die $!; open (IN2, $infile2) or die $!; open (OUT, ">$outfile") or die $!; my %Ensembl while ($infile2 = ){ chomp ($infile); my @values = split " ", $infile; my $ENSG = shift @values; foreach my $ENSP(@values){ $Ensembl{$ENSG} = $ENSP; } } while ($infile1 = ){ chomp ($infile1); my $IPReplace = translate($infile1); print OUT $IPReplace; } sub translate { my close (IN1); close (IN2);