Yes. Sorry I didn't articulate it very clearly, but what I was getting at is that you can create a central repository of shared stuff, and then split out your major functions into different modules, not a single script application. CGI::Application makes this very easy, and this functionality is very well thought out by the author, Jesse Erlbaum.

If you were thinking of starting an application as a single script, with the idea that you may split it out later, CGI::Application would be a good way to start.

When you were ready to split your single script app up, you'd put your setup() or cgi_appinit() subs into your shared SuperClass and your other modules could run pretty much untouched.

This might be a good way to go: Develop with CGI::Application for all it provides for a single script app, AND because it'll set you up better down the road as you need to bump up your script's functionality.