I've been coding perl about 6 years, and consider myself fairly fluent on the language. Like you, I've never formally studied programming. Sure, I took some classes, but I never made it to Data Structures, which I gather is where you stop learning syntax and start in on something...else. Still, I wrote my code, and finished my projects, and felt pretty good about what I was producing.
About a year ago, I got a new manager. He had a lot more experience than I did, and a very deep understanding of programming. He didn't teach me any new commands or structures. He taught me new things to do with the tools I already had. It was like a door had been opened. The stuff I'm doing now isn't any more technically demanding than before, but because of the exposure to these new concepts in data processing, I can do so much more.
Here's a few ideas to break the rut.
- Go back to school. If you can't find a perl class, take C or Java.
- Try to do something entirely new with perl. If you've been writing cgis, try writing tools. Try writing something to automate your daily web rambings (email filters, agents for searching Ebay, CPAN, Slashdot, whatever). Write a game. Check out the X10 libraries and see about connecting your coffee maker to your alarm clock. I saw an article today about a guy who built his own TiVo. He admitted right up front that it needed a way to pull listings and a better UI. Sounds like a cool project to me.
- Maybe perl isn't the problem. Maybe it's something...else. Try doing something you've never done before, something that isn't computer-related. You may find that it energizes you. Or, you may find yourself thinking that it would be far easier with comma-separated values parsed into an html table. Either way.
"What do I want? I'm an American. I want more."