use Benchmark "cmpthese"; use Regexp::Common "whitespace"; my $f = " this is a string with spaces to remove "; cmpthese (-3, { "Regexp-Common" => sub { my $g = $f; $g =~ s/$RE{ws}{crop}//g; }, "two-s///" => sub { my $g = $f; $g =~ s/^\s+//; $g =~ s/\s+$//; }, "one-s///" => sub { my $g = $f; $g =~ s/^\s+|\s+$//g; }, "s-capture" => sub { my $g = $f; $g =~ s/^\s*(.*?)\s*$/$1/; }, "s-capture2" => sub { my $g = $f; $g =~ s/^\s*(\S+(?:\s+\S+)*)?\s*$/$1/; }, "m-capture" => sub { my $g = $f; ($g) = ($g =~ m/(\S+(?:\s+\S+)*)/); }, "unpack" => sub { my $g = $f; $g = reverse unpack "A*", reverse unpack "A*", $g; }, });