I've got a ways to go, but here are some of the things that have gotten me to where I am:
- Read Llama (Learning Perl), Camel (Programming Perl), Ram (Perl Cookbook), Panther (Advanced Perl Programming), Alpaca (Perl References and Objects), Mouse-II (CGI Programming with Perl), Cheetah (Programming the Perl DBI), Owls (Mastering Regular Expressions), and Wolf (Mastering Algorithms with Perl). There were a few others, but these were the most influential.
- Read the Perl POD, cover to cover, so to speak. Ok, I didn't read the POD on operating systems that don't interest me, and I didn't really understand perlipc, or even perlguts the first time through (even now some of it goes over my head), but I made it a point to read everything else :). That was really helpful. First, I learned a lot of what I read, and second, I learned how to navigate the POD so that when I inevitably forget something that I've read, I'll know how to find it again.
- I practiced with test scripts and obfus. Obfus were a fun way to force myself to play with some of the more obscure syntaxes and tricks buried in the language. And test scripts allowed me to set up little scenarios that I could think through and solve.
- Read questions here at the Monastery, solve them on my own (especially if I don't know the answer to begin with), and if others haven't already posted better answers, post my own reply.
- As others mention various modules, go to CPAN, get the module, read it's POD, and play with the module until I understand it. This familiarized myself with installing modules, understanding their POD, understanding how to use their OO interface (before understanding OO concepts myself), and understanding how to "get things done" with Perl.
I hope this gives you some ideas on where you might expand your learning.