in reply to Difficulty Abstracting

One possible approach to take to this issue is similar to what I am doing right now on my own side project. Although I am not implementing it in perl, the theory is the same.

I am creating a web engine to host a large number of sites, and I sat down and looked at the various features I wanted to include (news feeds, user sectios, online users, etc). I then thought about what each feature was comprised of; what calls would be made to the DB, what would the engine need to do to the data. Once I had the feature set compartmentalized as much as I could, I compared all my information and set everything down as a series of components/functions.

I figure you could do something similar with this. Create a module for navigation, one for description, one for inventory, one for...

This approach makes sense to me. Obviously, you need to be careful not to over compartmentalize your code and make it a collection of 2,000 10-line scripts.