I am curious about your benchmark program.
With
my $str = "\nFoo\n\nBar Quz\nBaz\nx" x 500000;
I get:
5.020002
(warning: too few iterations for a reliable count)
(warning: too few iterations for a reliable count)
(warning: too few iterations for a reliable count)
s/iter index regex split
index 26.5 -- -61% -66%
regex 10.3 158% -- -12%
split 9.05 193% 13% --
which basically means that the results don't matter.
Code as with
my $str = "\nFoo\n\nBar Quz\nBaz\nx" x 50000;
Your benchmark default.
5.020002
(warning: too few iterations for a reliable count)
(warning: too few iterations for a reliable count)
Rate index regex split
index 1.16/s -- -21% -34%
regex 1.47/s 27% -- -16%
split 1.74/s 51% 19% --
I am not sure what this means if anything.