use strict; open NUMBERFILE, "<\@numbers" or die $!; my $regex = join "|", map {chomp; "^\\>gb\\|" . quotemeta($_) . "\$"} ; close NUMBERFILE; open DATAFILE, "<\@file" or die $!; my $flag = 0; while () { if (substr($_,0,1) eq ">") { $flag = /$regex/; } print if $flag; }