I don't know how complex the
$categories{$k}->{traces}[$i]->{regex} patterns are, but due to you looping over a set of patterns for each line, you do a regexp compile for each inner loop. You may want to precompile the patterns (note that even if
$categories{$k}->{traces}[$i]->{regex} is a
qr// construct, the fact you are using it inside a larger pattern (the anchor and the parens) makes that it gets stringified and recompiled each time. Alternatively, you may swap the inner and outer loop (that is, for each pattern, loop over the file) - but you'll have to do some benchmarking, whether or not it's faster depends on all kinds of factors.
And as others already have pointed out - use a while loop when iterating over the handle instead of a foreach.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.