I really can't tell what you are doing there. What I noticed is:
- You are "split(ing) the entry type from the actual verbage to be searched for" for each and every log file entry found.
Better is to do that once and for every ini file entry outside the loop
- You are using some "strange constructs" like
if (condition) {
next LOOP;
}
else {
# main part to do
}
instead of the "cleaner" solution without else.
But I don't think this will add to the running time
- Something I only use in java and never in perl found here: if (length($entry) == 0)why not simply:
if (not $entry) or even if ($entry eq "")? But again: Not that runtime issue, i think.
I'd suggest to fix the entry preparation first.
Update: Thanks to ikegami for reminding me of 0 ;-)
$\=~s;s*.*;q^|D9JYJ^^qq^\//\\\///^;ex;print