La solución es usar Perl persistente (aunque está sin actualizar desde el 2004), mod_perl2 (un poco complicado de programar, y necesitas acceso al servidor), y FastCGI (este es el más asequible).
Lo que hacen estas soluciones es arrancar una vez el CGI y dejarlo persistente en memoria, por lo que la siguiente petición no tendrá la penalización de la lectura. Pero, cuidado, porque cada solución requiere una programación cuidadosa, según las peculiaridades de cada una. Quiero decir que cada uno tiene una forma de hacer que los datos queden persistentes.
Puedes leerte estos dos hilos
Aunque la forma más fácil para empezar es usando un envoltorio que abrevie el esfuerzo de implantación:
CGI::Fast (que necesitará, a su vez, al módulo
FCGI (FastCGI)).
En uno de los hilos se comenta que una solución primera es la de meter la información del modelo en la sección __DATA__ del CGI. Así, la carga del modelo es al mismo tiempo que la del CGI.