http://qs321.pair.com?node_id=694746


in reply to Trimming whitespaces methods

My preference is to do the space trimming in two stages as it seems to be faster than either the capture or alternation methods.

use strict; use warnings; use Benchmark q{cmpthese}; my @arr = ( q{ fdsgehw fw wwfe w } ) x 5000; cmpthese( -5, { alternation => sub { my @new = @arr; s{ ^\s* | \s*$ }{}gx for @new; }, capture => sub { my @new = @arr; s{ ^\s* (\S.*?) \s*$ }{$1}x for @new; }, twoStage => sub { my @new = @arr; s{ ^\s* }{}x for @new; s{ \s*$ }{}x for @new; }, }, );

The results.

Rate capture alternation twoStage capture 8.96/s -- -26% -50% alternation 12.2/s 36% -- -33% twoStage 18.1/s 102% 48% --

I hope this is of interest.

Cheers,

JohnGG

Update: Fixed code indentation problems caused by TABs