FCGI could solve your problem with the persistent DB connection, however AFAIK Tomcat does not support FCGI out of the box. Though there seems to be a working JFastCGI servlet... (never tried it myself).
Another idea would be to emulate FCGI by creating a daemon that implements your service and interfaces with a stub CGI script, e.g. by means of (domain-)sockets?
Thus, the daemon maintains a permanent connection to the DB and handles request forwarded from the CGI stub.
client <-(HTTP)-> Tomcat <-(CGI)-> CGI-stub <-(IPC)-> Daemon <-DBI
Very awkward and probably not much faster than simply re-connecting to the DB...
Maybe it's easier to stay with Tomcat and write a servlet (Java) or stay with the
Perl (F)CGI script and use a Perl based HTTP server (e.g. Starman, Twiggy, HTTP::Server::*)?
Perhaps you can have two servers running (Tomcat and Perl-HTTP-server) and edit the CGI URIs, so
CGI calls get routed to the Perl HTTP server?
Very awkward again... I would negotiate with customer or boss again to get rid of this artificial limitation.
Why spend time and energy circumventing a problem that could be solved better the traditional way?