# If the files are not too large... # Read in the sequence file putting the data into a hash use strict; my %hash; while () { chomp $_; my ($id,$protein) = /^gi\|(.+?)\|.+\|(.+)$/; ## Save what you need $hash{$1} = $2; } # Now use the second file to print out the hash my @array2 = qw(13470319 13470331 15460001 13490216); map { print "$hash{$_}\n"; } @array2; __DATA__ gi|13490216|ref|NP_101899.1|protein for 216 gi|13470331|ref|NP_101896.1|protein for 331 gi|15460001|ref|NP_101898.1|protein for 001 gi|13470319|ref|NP_101897.1|protein for 319