|Do you know where your variables are?|
It's not surprised you're thinking about this. I remember your post Re: Indicators of your Perl skill. :)
By that measure, I'd say I'm advanced, or pretty close to it. I definitely don't muddle as much as I once did, but master is still a far cry for me.
As for how I got to my current skill level, reinvention has been a big thing for me. I have trouble learning things that I can't visualize or somehow create a mnemonic that is personally meaningful.
Sometimes I have to try doing something my own way in order to see why someone might do it another way. Sometimes, I blindly try to do it the way that they're doing it, without understanding what am doing. After I've tinkered with it enough, broken it enough, fixed it enough, it will finally start to gel and penetrate my often thick skull.
Like OO, for instance. I still don't have a *totally* solid understanding of it, but what helped me make progress (aside from merlyn's fine alpaca book) was RT. I had to monkey with it a lot for work. At first it was quite mysterious how all those modules interacted with each other, which modules inherited from each other, with methods were available in which place. After a while it finally started to make sense and I could finally see how an OO model could work together, be organized, intelligent, maintainable, and useful.
I know your question is "How do you master Perl?" but in this context, can you define master? Is a master someone who can use Perl as productively and efficiently as possible? Or is it Erudil and his ingenious posts. Or is a Perl master someone who can successfully earn a living based upon Perl. Or is it... Or is it...
Perhaps it's not really "mastery" that we seek?