use Benchmark 'cmpthese'; my $str = join '.', 'a' .. 'z'; cmpthese(-5, { old => sub { (my $x = $str) =~ s/(.*)\..*/$1/ }, new => sub { (my $x = $str) =~ s/.*\K\..*// }, }); __END__ new: 109650.19/s (n=578953) old: 45258.35/s (n=241227)