There are plenty of ways to become a better programmer:
Learn a new language. Rewrite some of your old code in the new language.
Explore a new technology. Read a book about something not specifically related. Ask yourself how they designed it and why they made the decisions they made.
Solve a new problem. Read a question on clpm or a golf challenge or a SoPW question, attack it yourself, and then compare it to the other answers.
Ask a new question, like "What happens if I bless a typeglob? Can I access a scalar and an array even if I pass just a scalar reference as $self?" Then write code to try it.
Rewrite an old program, but do something differently. (Perl makes this easy.) Some solutions are better than others, but knowing more about the language helps you solve other problems.
Read a module's interface, then see if you can recreate it without reading the code.
Look at a problem and write an interface to attack it. Then compare it to a module that solves the same program.
Mostly, just keep learning and looking for patterns. If you can make connections in your mind between nominally different things, you'll do okay.