OK, I am going to have everything from trivial style to obscure performance issues. :-)

First, use strict is a very good habit.

Secondly there is no need to keep track of the line number, that is already in $.. Likewise the filename you are reading from is in $ARGV. So the extra info you want is all available.

Thirdly the explicit C-style for loop is slower than a native Perl style foreach loop. Plus that lets you get rid of $numproblem.

Fourth the constant interpolation in the RE will be slow, you can and should push the looping logic down to the RE which can do that much faster than you can. Just quotemeta the strings, join with pipes, and then use qr to produce your RE.

Finally it is possible to speed up the RE with trieing. Someone threatened a CPAN module to do that, but I don't know if it happened. In any case the optimization should eventually show up in the RE engine. But I will go home and code it up for fun anyways...expect more from me here over the weekend. :-)


In reply to RE (tilly) 1: SAS log scanner by tilly
in thread SAS log scanner by nop

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.