|Think about Loose Coupling|
I would recommend learning perl by Randal Schwartz and do as many exercises in the book as you can, then when you wanna learn more get the video by Randall Schwartz Learning Perl then do the exercises again. Read the book first!
Then build an idea of a business model, using perl. i.e a website maybe that uses a database. Then look up the things you want to include by using modules and perl code.
Then try and build another web based program that can make changes to the website via web interface. Then start doing reports. Set permissions for different users. The things you study will be the things you want to learn to improve your project.
There are more advanced books you will need to read and refer to along the way. Inetermediate Perl, Programming Perl, Perl Monks and the main one Google. Doing Perl as a job is handy too.
You also need to learn sql but that's easy and learning how to configure apache2 is a bitch.
Skys the limit! That's all I know so far, I'm on the journey.
It's probably the same route for any language really, I'm starting python next I think, possibly java (but I hear you need alot of time building, yet it's supposedly easy to maintain).
Whatever route you choose, good luck