substr slows down 50% if the string contains utf-8 characters, but it's still significantly faster than unpack in this benchmark:use Benchmark qw(cmpthese); my $str = "wwibblewibblewibblewibbleibblewibblewibblewibble"; cmpthese -1, { regex => sub { my %count; ++$count{$_} for $str =~ /(?=(..))/g; }, substr => sub { my %count; ++$count{substr $str, $_, 2} for (0 .. length($str) - 2); }, unpack => sub { my %count; my $n = length($str) - 1; ++$count{$_} for unpack qq{(a2 X)$n}, $str; }, }; Rate regex unpack substr regex 15316/s -- -43% -74% unpack 26935/s 76% -- -54% substr 58514/s 282% 117% --
my $str = "wwibblewibblewibblewibbleibblewibblewibblewibble\x{20ac}"; Rate regex unpack substr regex 14222/s -- -35% -51% unpack 21976/s 55% -- -24% substr 29020/s 104% 32% --
In reply to Re^5: dice's coefficient
by Anonymous Monk
in thread dice's coefficient
by locked_user zanruka
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |