#!/usr/bin/perl -- use Benchmark qw/ cmpthese /; print "$]\n"; cmpthese( -3, { circumcised => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABC'; pos($what) = 8; $what =~ /AB.*Z/gc; # fail another return; }, uncut => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABC'; $what =~ /AB.*Z/gc; # fail another return; }, }, ); print "\n\n"; cmpthese( -3, { circumcised => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABCZ'; pos($what) = 8; $what =~ /AB.*Z/gc; # match one return; }, uncut => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABCZ'; $what =~ /AB.*Z/gc; # match one return; }, }, ); print "\n\n"; cmpthese( -3, { circumcised => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABCZ'; substr $what, 0, 8, ''; $what =~ /AB.*Z/gc; # match one return; }, uncut => sub { my $what = 'WWWA'; $what =~ /AB.*Z/gc; # fail one $what .='DBBBABCZ'; $what =~ /AB.*Z/gc; # match one return; }, }, ); print "\n\n"; cmpthese( -3, { circumcised => sub { my $what = 'WWWA'; $what =~ /AB.*Z/; # fail one $what .='DBBBABCZ'; substr $what, 0, 8, ''; $what =~ /AB.*Z/; # match one return; }, uncut => sub { my $what = 'WWWA'; $what =~ /AB.*Z/; # fail one $what .='DBBBABCZ'; $what =~ /AB.*Z/; # match one return; }, }, ); print "\n\n"; __END__