On 4/6/07, Dr.Ruud <[EMAIL PROTECTED]> wrote:
Jeff Pang schreef:
> $fname =~ s/^\s+|\s+$//g;
Alternative:
s/^\s+//, s/\s+$// for $fname;
snip
Just because I like hard numbers when comparing methods:
Rate one_regex two_regex
one_regex 34.0/s -- -67%
two_regex 103/s 203% --
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark;
my @a = random_strings(10_000);
my %subs = (
one_regex => sub { my @b = @a; s/^\s+|\s+$//g for @b; },
two_regex => sub { my @b = @a; s/^\s+//,s/\s+$// for @b; }
);
Benchmark::cmpthese(-3, \%subs);
sub random_strings {
my $num = shift;
my @ret;
for (1 .. $num) {
push @ret,
' ' x (int rand(30)+1) .
'a' x (int rand(30)+1) .
' ' x (int rand(30)+1);
}
return @ret;
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/