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
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Trimming whitespaces methods
by lodin (Hermit) on Jun 30, 2008 at 17:02 UTC | |
by johngg (Canon) on Jun 30, 2008 at 22:33 UTC |
In Section
Seekers of Perl Wisdom