Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: Skip a row of csv file.

by TomDLux (Vicar)
on May 04, 2012 at 18:02 UTC ( #968961=note: print w/ replies, xml ) Need Help??


in reply to Re: Skip a row of csv file.
in thread Skip a row of csv file.

While many people do use regular expressions, I think that's like using an M16 to crack walnuts.

R.E. are the appropriate solution when you have variable components, but testing a constant string is precisely what 'eq' is for.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.


Comment on Re^2: Skip a row of csv file.
Replies are listed 'Best First'.
Re^3: Skip a row of csv file.
by aaron_baugher (Curate) on May 04, 2012 at 23:35 UTC

    You make a good point, but I found myself wondering how the combination of substr, length, and eq would compare to a single anchored regex, so I did a benchmark. I'm convinced!

    bannor:~/work/perl/monks$ cat 968838.pl #!/usr/bin/env perl use Modern::Perl; use Benchmark qw(:all); my $str = 'A.SERIAL_NUMBER||abcdefghijklmnopqrstuvwxyz'; my $ss = 'A.SERIAL_NUMBER||'; my $yay; cmpthese( 10_000_000, { 'substr' => sub { if(substr($str,0,length($ss)) eq $ss ){ $yay = 1; } }, 'regex' => sub { if( $str =~ /^\Q$ss\E/ ){ $yay = 1; } }, }); bannor:~/work/perl/monks$ perl 968838.pl Rate regex substr regex 1312336/s -- -65% substr 3802281/s 190% --

    Aaron B.
    My Woefully Neglected Blog, where I occasionally mention Perl.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://968961]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2015-07-31 04:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (274 votes), past polls