##do something with $p - 1 while $p = 1 + index( $haystack, $needle, $p );
####
$s = 'the quick brown fox jumps over the lazy dog';
cmpthese -1,{
a => q[ if( $s =~ m[(lazy)]){ $found=$1 } ],
b => q[ $found = 'lazy' if 1+index( $s, 'lazy' ); ],
c => q[ $found = 'lazy' if $s =~ 'lazy'; ],
};;
Rate a b c
a 577066/s -- -77% -79%
b 2492720/s 332% -- -11%
c 2791311/s 384% 12% --
[0]{} Perl>
##
##
$s = 'the quick brown fox jumps over the lazy dog';
$x = 'lazy';
cmpthese -1,{
a => q[ if( $s =~ m[($x)]){ $found = $1 } ],
b => q[ $found = $x if 1 + index( $s, $x ); ],
c => q[ $found = $x if $s =~ $x ],
};;
Rate a c b
a 449697/s -- -79% -82%
c 2167332/s 382% -- -12%
b 2462877/s 448% 14% --
$s = 'the quick brown fox jumps over the lazy dog';
$x = 'lazy';
cmpthese -1,{
a => q[ if( $s =~ m[($x)]){ $found = $1 } ],
b => q[ $found = $x if 1 + index( $s, $x ); ],
c => q[ $found = $x if $s =~ $x ],
};;
Rate a c b
a 459542/s -- -79% -80%
c 2184810/s 375% -- -6%
b 2318112/s 404% 6% --