while($line = ) { for $hit ($line =~ /matchdata/gi) { push @files, $name; } } close F; #### while($line = ) { if ($line =~ /matchdata/i) { push @files, $name; last; } } close F;