#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; my $re = qr/^ *(?:say|print)/; my $s = qq/(?^:^ *(?:say|print))/; open my $in, '-|', qw{ perldoc perlfunc } or die $!; my @lines = <$in>; push @lines, @lines for 1 .. 5; say scalar @lines; use Benchmark qw{ cmpthese }; my ($ir, $is); cmpthese(-3, { regex => sub { $ir = 0; /$re/ and ++$ir for @lines }, string => sub { $is = 0; /$s/ and ++$is for @lines }, }); $ir == $is or die; __END__ 259616 Rate regex string regex 13.5/s -- -23% string 17.6/s 31% --