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/


Reply via email to