in reply to One more problem
in thread While loop printing only one fasta header file

Hi!
Don't you think that mixing implicit value ($_) and explicit one ($head) is unusefully confusing?
I think that, when you use $_, it doesn't refer to the outmost loop :
it has probably been reused by the inner one.
I'd retry the loop part of your script the way down:
Also, I suppressed the test about // in the if statement (I hope it's right)
while ($Fh=<FH>) { chomp($Fh); foreach $head(@headers) { chomp($head); if ($head =~ /$Fh/) { print "$Fh\n"; } } }
One remark (about efficiency) :
I suppose you have (much?) more lines in the data file than in the keys file (fastheaders.txt) : you should invert the order of loops :
foreach line (data file) foreach line (keys file) if found print AND break inner loop (last) endif