Bienvenido a los foros de Perl en Español, _nemo_.
Tú, lo que quieres hacer, se llama crear un
CGI.
Si tienes un Apache moderno, es muy posible que el soporte de CGI ya esté instalado.
De todas maneras, mira los ficheros de configuración del servidor Apache, y busca por la palabra
cgi.
Por ejemplo, en la mayor porte de las distribuciones Linux, se define el directorio /usr/lib/cgi-bin como uno en el que los programas residentes allí serán ejecutados con el protocolo CGI.
También es posible que las extensiones de los ficheros definan ese comportamiento. Muy posiblemente las extensiones .pl y .cgi estén definidas así en esos ficheros.
Después de repasar la configuración del Apache, hay que colocar el programa así:
* en un directorio en que el servidor web lo pueda encontrar, leer y ejecutar. Para ello, hay que repasar los directorios vistos en el paso anterior.
* el programa va a ser ejecutado por el usuario que ejecuta el propio servidor web, que normalmente será www-data o httpd. Como nuestro programa está puesto a nuestro nombre, haremos una de estas dos cosas: o le damos permiso de ejecución para todo el mundo (y eso incluirá el usuario www-data), o bien cambiamos el propietario del programa, de nosotros a www-data. Lo más sencillo es usar la primera opción, con el comando
chmod 755 programa.pl o desde el FTP
Ahora ya podemos intentar invocarlo desde el navegador web.
Si no funciona, lo primero que hay que hacer es mirar los ficheros de log del propio servidor web (error.log, por ejemplo).
Te recomiendo que mires la sección de
Tutoriales sobre CGI de este mismo web. El llamado "Primeros pasos" muestra un cgi que tiene lo mínimo para funcionar. Si te fijas, te falta sacar un "Content-type".
También puedes copiar y probar mi
CGI mínimo donde verás que se puede crear un CGI de forma rápida, con la ayuda del comando CGI. Y con la ayuda de CGI::Carp, los mensajes de error salen en la pantalla (no solo en el error.log).