> And is this method any faster or more efficient than this?
> 
> $var =~ s/\{([^}]+)\}/$v = $1; $v =~ s!,!|!g; qq!($v)!/ge;

Why not find out yourself?

C:\src\perl>type rebench.plx
use strict;
use Benchmark qw/cmpthese/;

sub luke
{
        my $var = 'blargh{a,b,c}';
        my $v;
        $var =~ s/\{([^}]+)\}/$v = $1; $v =~ s!,!|!g; qq!($v)!/ge;
}

sub john
{
        my $var = 'blargh{a,b,c}';
        $var =~ s<{([^}]+)}><(?:@{[ ($a = $1) =~ y/,/|/ && $a ]})>;
}

cmpthese(100000, {
        'Luke' => \&luke,
        'John' => \&john
});

C:\src\perl>rebench
        Rate John Luke
John 59809/s   -- -21%
Luke 75301/s  26%   --

Also, switching the s!,!|!g to a y!,!|! in mine is faster yet:

C:\src\perl>rebench2.plx
        Rate John Luke
John 59242/s   -- -32%
Luke 87642/s  48%   --

Of course, unless you're doing 100000 substitutions in your program, the
speed difference doesn't matter at all :-)

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to