Thanks alot Chas... this is a great example.... Anu
On 10/11/07, Chas. Owens <[EMAIL PROTECTED]> wrote: > > On 10/10/07, newBee <[EMAIL PROTECTED]> wrote: > > On Oct 9, 8:18 pm, [EMAIL PROTECTED] (Jeff Pang) wrote: > > > 2007/10/10, Dr.Ruud <[EMAIL PROTECTED]>: > > > > > > > No need for (), so you can write: > > > > > > > m/tony|anthony/i > > > > > > or, > > > /tony/i || /anthony/i > > > > > > this is faster than /tony|anthony/i. > > > > Thanks to all you guys... after I published the question I didn't get > > a chance to look so I used something like this which did the job / > > \b(tony|anthony)\b/i .. I think i am going to see the performance > > difference between that and /tony/i || /anthony/i ... do we have a > > inbuilt time function in perl..? > snip > > If you want to compare two or more implementations of something in > Perl then the Benchmark module is your friend. It is used like this: > > #!/usr/bin/perl > > use strict; > use warnings; > > use Benchmark; > > my $test = shift; > my $time = shift || -2; > > my @data = ( > "He took Tony to the store.", > "An anteater took a look at Anthony.", > "There is no Tonya here.", > "It doesn't match Anthonye." > ); > > my %subs = ( > capturing_alternation => sub { > my @results; > push @results, scalar(/\b(tony|anthony)\b/i) for @data; > return @results; > }, > noncapturing_alternation => sub { > my @results; > push @results, scalar(/\b(?:tony|anthony)\b/i) for @data; > return @results; > }, > or => sub { > my @results; > push @results, scalar(/\btony\b/i or /\banthony\b/i) for > @data; > return @results; > }, > ); > > if ($test) { > for my $sub (keys %subs) { > print "$sub => ", map({ "[$_]" } $subs{$sub}()), "\n";; > } > } > > Benchmark::cmpthese($time, \%subs); > -- Anuradha Uduwage