open INFILE, "$ARGV[0]"; #### open INFILE, "<", $ARGV[0] or die "Can't read '$ARGV[0]': $!"; #### # I'd use a better variable than $line, but I don't know # what your purpose is, and your Tryptic names are quite # cryptic for me. for my $line (@aTryptic) { my $accSeq = SplitFields($line], 'split'); $line =~ s/\r?\n\z//g; $hTryptic{$accSeq} = $line; $line = $accSeq; } #### my %in_array_b; @in_array_b{@array_b} = (); foreach my $one (@array_a) { print $in_array_b{$one} ? $hash_a{$one} : $hash_b{one}; }