#!/bin/bash echo generate perl -wE 'for (1..10000000) { print int(rand 2) ? "xyzabcd" : ("mul(" . int(rand 5000). "," . int(rand 5000) . ")" ) ; print "\n" unless int rand 10 }' > 1 echo python cat < }; my $count = () = $input =~ m/mul\(\d{1,3},\d{1,3}\)/g; print "Found $count matches.\n"; EOF echo perl line by line cat <<'EOF' | (time perl - 1) my $fn = shift; exit 1 if not defined $fn; my $count = 0; open my $fh, "<", $fn or die "open failed"; while (<$fh>) { ++$count while /mul\(\d{1,3},\d{1,3}\)/g; } print "Found $count matches.\n"; EOF echo perl tybalt cat <<'EOF' | (time perl - 1) my $fn = shift; exit 1 if not defined $fn; my $input = do { open my $fh, "<", $fn or die "open failed"; local $/; <$fh> }; my $count = 0; ++$count while $input =~ /mul\(\d{1,3},\d{1,3}\)/g; print "Found $count matches.\n"; EOF rm 1