http://www.perlmonks.org?node_id=1002466


in reply to Re^7: Find Prefix if regex didn't match
in thread Find Prefix if regex didn't match

Sorry, I haven't found any time spending on this topic the last days...

Your benchmarks are not exactly what I thought about, what I have in my mind is:
#!/usr/bin/perl -- use Benchmark qw/ cmpthese /; print "$]\n"; my $what1 = 'WWWA'; my $what2 = $what1; cmpthese( -3, { circumcised => sub { $what1 =~ /EB.*Z/; # fail one $what1 .='DBBBABC'; substr $what1, 0, 8, ''; $what1 =~ /EB.*Z/; # fail another return; }, uncut => sub { $what2 =~ /EB.*Z/; # fail one $what2 .='DBBBABC'; $what2 =~ /EB.*Z/; # fail another return; }, }, ); print "\n\n"; __END__ 5.010001 Rate uncut circumcised uncut 2735/s -- -100% circumcised 3398892/s 124179% --

Replies are listed 'Best First'.
Re^9: Find Prefix if regex didn't match
by Anonymous Monk on Nov 06, 2012 at 13:18 UTC

    Your benchmarks are not exactly what I thought about, what I have in my mind is:

    I see :)

    But, still, neither results seems very important , network is always much slower than both

      But, still, neither results seems very important , network is always much slower than both

      Yes, that's for sure meanwhile... in a previous versions I used $rec = <$term> instead of read($term, $rec, 0xFFFF) what came in my mind when I was writing one of my replies here and what definitely was the major reason for my timing problem because the log file I receive via TCP contains many new lines what caused much more matchings than necessary... so asking questions here has already fulfilled its purpose :)

      But what has left, there is still a problem in my mind I haven't really solved yet, that is scanning for prefixes which could be a regular expression, not just a simple ASCII string. So I'm still wondering if there is really no possibility in pearl asking the regexp engine to tell me at which position it started matching when it reached the end of given string the first time even if it hasn't reached end of expression yet...

      By the way many thanks for all your help, according to your astonishing response time I guess you live in front of your computer? ;)