You can use mod_perl properly and write your self a request handler -
rather than using CGI scripts which handles the routing for you. I use
this model exclusively on my servers...
Most of the scripts are converted to action modules, which are
dynamically compiled by the handler (which acts as
Hello Tosh. I stopped using CGI.pm a very long time ago after
learning about the apreq2 library which provides access to the
Apache2::Request module. Particularly, there is support for CGI
parameters, including multiple file uploads from the same HTML form,
and also the Cookie API: