Plato said that in the Republic. In other words, we don't tend to look for new solutions when what we already have works. We can use the principle to expand our current knowledge base. This meditation will take you through the explanation, cause, and a solution to an apparently common problem among Perl hackers.
After assimilating enough information to do what needs to be done, many Perl hackers feel lost in what to learn next. I myself experienced this same problem originally as outlined in Road map woes. We feel such an affinity to the language, we want to continue expanding our knowlege even after being confident we can get the job done.
Perl is an amalgamation of many small versatile tools resulting in a language that easily solves many jobs. It was designed with the programmer in mind so that you could accomplish what you wanted without worrying about things like memory allocation, garbage collection, explicit conversion of strings to numbers, etc. With such a powerful language, you only need to know a little to do a lot. This is the crux of the problem since learning more is not necessary to accomplish what we need to do. Since we do not know what we do not know, it is often hard to come up with a project that will require learning new things.
Simply solve an old problem in a new way. You can accomplish this by systematically throwing out tools from the toolbox until you don't know how to solve it. On occassion you end up using an old tool in a new way, but this is just as beneficial. In fact, if there is an area you have not mastered, a useful variation on this method is limiting your toolbox to a single tool (solve X using only regular expressions).
It is important to note that the more experience you have, the more unlikely it is that you will find a better solution for the original problem. This is perfectly ok since what we set out to do in the first place was learn something new. You may also find that you have no practical use for what you have learned. That is ok too because it usually becomes a key that fits perfectly in a yet undiscovered lock. It is also ok to pursue ridiculous solutions since you never know what you may uncover in the process.
I welcome any and all feedback. I know that some hackers prefer to be more practical in their approach to coding. I understand and respect that opinion. I freely admit it is not a good fit for everyone. Programming is not my primary vocation so I tend to run out of needs and have to invent my own. This method has helped me. I know it won't help everyone, but I hope it helps someone.
Cheers - L~R