A
perl -w -Mstrict -le 'my $row = "FEdfs,.!##$%sgd3424fg!!q"; $row =~ s/[^a-z0-9\.\,]//gi; print $row'
Size: a a a
A
perl -w -Mstrict -le 'my $row = "FEdfs,.!##$%sgd3424fg!!q"; $row =~ s/[^a-z0-9\.\,]//gi; print $row'
IB
P
IB
P
A
A
IB
A
A
A
SZ
# perl -MBenchmark=/./ -Iblib/arch -Iblib/lib -Ilib -MScalar::Length -Mstrict -Mwarnings -Mutf8 -CSD -le 'my ($in, $out) = q(привет); cmpthese -1 => { xs => sub { $out = Scalar::Length::sv_length($in) }, bytes => sub { {use bytes; $out = length $in } }, utf8 => sub { $out = utf8::upgrade($in) }, encode => sub { use Encode q(encode); $out = length(encode(q(UTF-8), $in)) } }'
Rate encode xs utf8 bytes
encode 447829/s -- -97% -98% -99%
xs 15887515/s 3448% -- -22% -64%
utf8 20310255/s 4435% 28% -- -54%
bytes 44040191/s 9734% 177% 117% --
YM
VG
SZ
SZ
SZ
SZ
# perl -MBenchmark=/./ -Iblib/arch -Iblib/lib -Ilib -MB=svref_2object -MScalar::Length -Mstrict -Mwarnings -Mutf8 -CSD -le 'my ($in, $out) = q(привет); cmpthese -2 => { xs => s
ub { $out = Scalar::Length::sv_length($in) }, bytes => sub { {use bytes; $out = length $in } }, utf8 => sub { $out = utf8::upgrade($in) }, encode => sub { use Encode q(encode); $out = length(encode(q(UTF-8), $in
)) }, svref => sub { $out = svref_2object(\$in)->CUR }, }'
Rate encode svref bytes xs utf8
encode 470013/s -- -87% -96% -98% -98%
svref 3485239/s 642% -- -67% -82% -82%
bytes 10505116/s 2135% 201% -- -46% -47%
xs 19435213/s 4035% 458% 85% -- -2%
utf8 19881662/s 4130% 470% 89% 2% --
SZ
VG