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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |