Bienvenido a los foros de Perl en español, xavieraviles.
¿No te ofrece tu alojamiento ni una mísera base de datos MySQL? Vaya alojamiento más sospechoso...
Para usar una base de datos en memoria, se puede tener un proceso constantemente funcionando, o, como funciona memcached, un dæmon que acepte peticiones de otros procesos.
Tanto una como la otra solución implica que en el alojamiento se esté ejecutando un proceso de forma continua, y eso no suelen ofrecerlo todos los alojamientos.
Depende también de las prestaciones que busques en la base de datos, pero si, por ejemplo, se trata de hacer algo muy sencillo, se podría probar con una sqlite.
Si quieres ver el soporte de bases de datos que tiene Perl (al menos, la mayoría de controladores) puedes entrar en CPAN y buscar por "
DBD".
DBD::RAM, por ejemplo, sí que almacena la información en memoria (y en ficheros). Trabaja con una u otra forma, pero si se termina el proceso, perderá toda la información que tenga en memoria. Si quieres almacenar la base de datos en disco antes de salir, puedes hacer un export() de la base de datos en memoria a un fichero. Y al revés: cuando comienza el proceso, puedes hacer un import() para leer la base de datos desde el fichero hacia la memoria. Tiene también la función catalog(), que permite tener sincronizadas las dos estructuras, por lo que no es necesario hacer un export() al final del proceso.
La desventaja de este módulo es que es del año 2000, por lo que no funciona más que con un Perl v5.6 (según aparece en la tabla de compatibilidades.
Es normal: la inmensa mayor parte de las gestiones con bases de datos se hacen con MySQL, Oracle, Informix, DB2, SQLite, ODBC, DBM, Google, MariaDB y PostgreSQL.
Una solución, de andar por casa, sería usar el módulo
Storable, que permite guardar y recuperar estructuras de datos complejas a y desde disco.