use strict; use warnings; use Benchmark qw(cmpthese); my $str = (' ' x 1000) . ('x' x 100000) . (' ' x 1000); cmpthese ( -5, { plusplus => \&plusplus, starstar => \&starstar, starplus => \&starplus, plusstar => \&plusstar, twosub => \&twosub, } ); print "\n\nString got clobbered\n" if $str !~ /^ .* $/; sub plusplus { $_ = $str; s/^\s+|\s+$//g; } sub starstar { $_ = $str; s/^\s*|\s*$//g; } sub starplus { $_ = $str; s/^\s*|\s+$//g; } sub plusstar { $_ = $str; s/^\s+|\s*$//g; } sub twosub { $_ = $str; s/^\s+//; s/\s*$//; }