"I though I was finally approaching expert level in Perl"
I've thought that every day for the past 10 or so years, but each day I find something new. I stick with "intermediary" just to be safe ;)
Writing things down (even without code) helps a lot of the time. Many call that Rubber Duck Debugging. I'll explain my issue to my wife (who has no idea what I'm talking about), to myself on a walk along the waterfront at my home, or to my desk as I'm headbanging it out of frustration.
Many solutions to extremely complex problems have been found via these types of methods. Several times, while I'm at a loss, I start typing the question here on Perlmonks, only to solve the problem by trying to explain the situation. Mostly, if that happens, I post the question anyways, in the event that someone else may benefit one day.