while(my $s = <$fh>) { $s =~ /^ ?Query/ && $match_count1++; } #### v5.32.1 tempfile.txt is size 29 Mb 0.121957 read lines from disk and do RE (32571 matches). 9.511288 read lines from in-memory file and do RE (32571 matches). #### while(my $s = <$fh>) { index( $s, 'Query' ) != -1 && $match_count1++;; } #### v5.32.1 tempfile.txt is size 29 Mb 0.092390 read lines from disk and do RE (32571 matches). 0.051797 read lines from in-memory file and do RE (32571 matches).