use strict; use warnings; use Benchmark ':hireswallclock', 'cmpthese'; my $str = "FOOFOOFOOFOOFOOFOOFOOFOOFOOFOOFOOFOOFOOFOOZOOCOOFOOFOOFOOFOOFOOFOOFOO"; my $pos = 0; my $res = ''; cmpthese(2000000, {'substrindex' => sub { $res = substr($str, index($str, 'ZOO'), 6); #print $res."\n"; }, 'regexp' => sub{ $str =~ /(ZOO.{3})/; $res = $1; #print $res."\n"; } } );