use strict; use warnings; my $headerFile = <DFHGSUEIEEK >JKDHUEIEEOE >KDJIEEIOIEO DATA my $dataFile = <DFHGSUEIEEK ACGTCGTACGATCGATCAGTACGTACGAT >JKDHUEIEEOE ACGATGCGTACAGTACAGTACAGTACAGT >KDJIEEIOIEO AGTCGTCGTAGTGTTTTACCCCCATGTCA >HSKWJSSWWOW AGTAGTAGTAGTAGGGGTTTTTTTTACCC >ADJHFHIOHFO ACGTGGGGGGGGGGTTATTACCCCCCCCA >DTEEIJEJEOJE TTTTTTTTTTGGGGGGGGGACCCCCCCAT DATA open my $FD, '<', \$headerFile; my %headers = map {$_ => 0} <$FD>; close $FD; open my $FH, '<', \$dataFile; exists $headers{$_} and print while <$FH>; close $FH;