>     'plain_regex'    => sub { if ( $string =~ /^.{38}\|[BNPG]\|/ ) {
> my $a = $_ } },
>     'plain_regex'    => sub { if ( $string =~ /^.{38}\|N\|/ ) { my $a = $_ } 
> },
> 
> What was interesting to me was that although, predictably, the
> substring/regex combo was consistently the best performer for the
> original match, regexing the whole line was consistently the best
> performer when looking for "|N|".  This seems to fly in the face of
> the conventional wisdom that substr is faster than m// when you know
> what you're looking for and where you're looking for it.

I believe the conventional (faster?) way to do a regex search when you
want to start matching a fixed number of characters in is along the
lines of:

pos($string) = 38;
print "found!\n" if $string =~ /\G\|[BNPG]\|/;

-- 
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