You should definitely take a look at CGI::Application.
Just create a Module with C::A as base, add your custom code to that module and then use this new module (eg. CGI::MyStdApp) as base for your CGIs.
You can even package your common CGI::MyStdApp with Module::Starter to get an easy to install code base, and more important, no duplicated (for every app) code base.
This OO approach is not very fast in a classical CGI environment, but runs with nearly no modification in mod_perl. In mod_perl, you can cache HTML::Templates. The bottleneck is here often firefox, not the perl script ;)