in reply to
Re: Print Number With Implied Decimal Point
in thread Print Number With Implied Decimal Point
If you want to make the regex solution run much more quickly, use Look Around Assertions in place of the capture and reinsert.
cmpthese(0, {
substr => sub {
my @l = @list;
substr $_, -2, 0, '.' for @l;
},
regex => sub {
my @l = @list;
s/(..)$/.$1/ for @l;
},
regex2 => sub {
my @l = @list;
s/(?=..)$/./ for @l;
},
});
yields
Rate substr regex regex2
substr 73.1/s -- -39% -71%
regex 121/s 65% -- -52%
regex2 250/s 242% 107% --
Update: As per JavaFan's comment, I had a typo in my sub. Replaced s/(?=..)$/./ with s/(?=..$)/./ which returns the correct result, but at substantially poorer performance.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.