in reply to Debugging help!
Variables $1, $2, etc. are locally-scoped and they can be invalid after pattern matching. Try rewriting your matches like this:
so usage of these variables should be inside the if(){} block, not near the match.$1 => $2 if /(.+)\s+\|\s+(PF.{5})/
If you are not sure whether your regexps are right, use Regexp::Debugger or YAPE::Regex::Explain to check them.
Sorry if my advice was wrong.
In Section
Seekers of Perl Wisdom