use Benchmark; sub dotstar { my $data = $testdata; $data =~ s/^\s*(.*?)\s*$/$1/; return $data; } sub first_n_last { my $data = $testdata; $data =~ s/^\s*//; $data =~ s/\s*$//; return $data; } sub first_n_last_must_match { my $data = $testdata; $data =~ s/^\s+//; $data =~ s/\s+$//; return $data; } $testdata = ' ' x 200 . "abcd" x 20 . " " x 200; timethese( 100000, { dotstar => '&dotstar', first_n_last_1 => '&first_n_last', first_n_last_2 => '&first_n_last_must_match' } )