use 5.14.1;
use strict;
use warnings;
use Benchmark qw/:all/;
my @strings;
my @chars = ("A".."Z", "a".."z", " ");
for ( 1..10000 ) {
my $string;
$string .= $chars[rand @chars] for 1..20; }
sub oneregexp {
for my $string ( @strings ) {
$string =~ s/(^\s+|\s+$)//g
}
}
sub tworegexp {
for my $string ( @strings ) {
$string =~ s/^\s+//;
$string =~ s/\s+$//;
}
}
cmpthese (230,
{
'oneregexp' => '&oneregexp',
'tworegexp' => '&tworegexp',
});
CnVzZSA1LjE0LjE7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBCZW5jaG1hcmsgcXcvOmFsbC87CgpteSBAc3RyaW5nczsKbXkgQGNoYXJzID0gKCJBIi4uIloiLCAiYSIuLiJ6IiwgIiAiKTsKCmZvciAoIDEuLjEwMDAwICkgewoJbXkgJHN0cmluZzsKCSRzdHJpbmcgLj0gJGNoYXJzW3JhbmQgQGNoYXJzXSBmb3IgMS4uMjA7CglwdXNoKEBzdHJpbmdzLCAkc3RyaW5nKTsKfQoKc3ViIG9uZXJlZ2V4cCB7Cglmb3IgbXkgJHN0cmluZyAoIEBzdHJpbmdzICkgewoJCSRzdHJpbmcgPX4gcy8oXlxzK3xccyskKS8vZwoJfQp9CgpzdWIgdHdvcmVnZXhwIHsKCWZvciBteSAkc3RyaW5nICggQHN0cmluZ3MgKSB7CgkJJHN0cmluZyA9fiBzL15ccysvLzsKCQkkc3RyaW5nID1+IHMvXHMrJC8vOwoJfQp9CgoKY21wdGhlc2UgKDIzMCwgCgl7CgkJJ29uZXJlZ2V4cCcgPT4gJyZvbmVyZWdleHAnLAoJCSd0d29yZWdleHAnID0+ICcmdHdvcmVnZXhwJywKCX0pOwo=