Bienvenido a los foros de Perl en Español, debilish99.
Sí que te puede valer, pero quizás debas modificar algo tu código.
Si esos CGI generan una salida (normalmente un HTML), lo primero que hay que hacer es comprobar si la petición del usuario (con los argumentos correspondientes) ya la tenemos cacheada. Si es así, le mandamos el contenido generado antes. Y si no, lo generamos, lo cachemos y se lo enviamos.
Algo así:
Using perl Syntax Highlighting
use Cache::FileCache; # sistema de caché basado en archivos
my $cache = Cache::FileCache->new(
default_expires_in => "2 days", # tiempo de expiración del contenido cacheado
);
# calcular aquí el NOMBRE del contenido que tendríamos que generar,
# en función del usuario, posición dentro del sitio, y argumentos.
# Podría ser una URL con todos los argumentos o, simplemente, el nombre de la página que el usuario quiere ver.
my $que_generar = ...;
# recuperamos el contenido cacheado
my $contenido = $cache->get( $que_generar );
# comprobar que aún estaba
if ( not defined $contenido ) { # si no estaba cacheado...
$contenido = generar_contenido( $que_generar ); # lo generamos ahora
$cache->set( $que_generar, $contenido ); # y cacheamos
}
print $contenido; # salida al exterior
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Las ventajas son claras: si el contenido solicitado ya está cacheado, lo servimos inmediatamente, por lo que nos ahorramos todas las peticiones a la base de datos y confección de la página HTML.
Como el contenido puede quedarse obsoleto al cabo de unos días, horas, minutos, ponemos un límite de dos días para la información cacheada. Si pasa ese tiempo, ese caché se elimina de forma automática, lo que nos obliga a generar uno nuevo. Pero todo esto ya está en el código que te he puesto. Es cosa tuya decidir el tiempo de expiración. En la página de manual da algunas pistas de los valores que podemos usar.
Presta atención que el propio módulo dice que aconseja el uso, en su lugar, del módulo
CHI, que es más general y moderno.