use Benchmark qw( cmpthese ); cmpthese( 100_000, { 's' => sub { $a='a _ b __ c'; $a=~s/_+//g; }, 'y' => sub { $a='a _ b __ c'; $a=~ y/_//sd; } } ); __END__ Benchmark: timing 100000 iterations of s, y... s: 9 wallclock secs ( 7.18 usr + 0.00 sys = 7.18 CPU) @ 13927.58/s (n=100000) y: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 45578.85/s (n=100000) Rate s y s 13928/s -- -69% y 45579/s 227% --