Apache Perl CGI en Mac OS X

Desde hace algún tiempo desarrollé cierta curiosidad por aprender Perl, me parece un lenguaje fenomenal, con posibilidades inmensas, además muy divertido.
Hoy quiero presentar el como iniciar desarrollos Perl en Mac OS X aprovechando claro el apache2 instalado en el sistema. Lo primero será hacer andar Apache, si se trata de una versión previa a OS X 10.7.x vale este how to, sino, solo tendrás que crear un archivo para tu usuario en: /etc/apache2/users/TU_USUARIO.conf con el siguiente contenido básico:

<Directory "/Users/TU_USUARIO/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Luego, arrancar apache con: sudo apachectl start
Puede que gustes tener todo lo necesario e instalar MySQL en OSX también, luego actualizar Perl a la última versión con perbrew en tu Mac no estaría nada mal.
Ahora para tener funcionando Perl como CGI en tu Mac, solo necesitas hacer pequeños cambios en el archivo de configuración de tu usuario en apache:

<Directory "/Users/TU_USUARIO/Sites/">
 Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>
DirectoryIndex index.php index.html index.cgi index.pl

Luego, editar el archivo: /etc/apache2/httpd.conf, remover las líneas de #AddHandler cgi-script .cgi . Debe quedar así:

AddHandler cgi-script .cgi .pl

También remover los comentarios de

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Con esto ya ha quedado, ya puedes empezar a probar tus scripts Perl, recuerda siempre hacerlo de esta forma:

#!/usr/bin/env perl
print "content-type: text/html\n\n";
print "hola mundo";

La primera línea es para no utilizar siempre la versión predeterminada como ruta de Perl, sino la que tengas activa en tu cuenta de usuario (por si utilizas perbrew o tienes múltiples versiones instaladas y seteas como predeterminada una u otra). La segunda línea crea la cabecera del documento, lo que lo hace apto para presentarse en un navegador (y para ser ejecutado como CGI), de ese punto en adelante está tu código.
Ya visto todo esto, quiero comentar que uno de los inconvenientes con los que rápidamente me topé es que al menos para la Web, Perl está en claro desuso a favor de lenguajes como PHP, una de las principales razones es el desconocimiento. En el pasado Perl era el principal lenguaje libre para la Web, todo a través de CGI, entonces surgió PHP como alternativa, era un lenguaje más fácil, pensado en la Web, además más conveniente para los hosting compartidos, esto porque mod_php brindaba más control y opciones de seguridad, por otro lado existen centenares de maneras de resolver un mismo problema en Perl y por alguna extraña razón, a muchos programadores Perl les encantaba hacer su código enredado, y entre las posibilidades que brinda Perl está el resolver el mismo problema de infinidad de maneras diferentes y con código simple o tremendamente intrincado, es más, se volvió una subcultura en Perl el desarrollo de código ofuscado.
Sin embargo el lenguaje ha evolucionado, es increíblemente rápido y versátil, ya no existen razones para considerarlo una herramienta en línea de comandos que puede utilizarse para la Web, sino un lenguaje tremendamente maduro con excelentes características para funcionar en la Web que por cierto (y cabe recalcarlo), es tremendamente más rápido que PHP como CGI. Lastimosamente no lo ve así gran parte de la comunidad de programadores de antaño, que a su vez han sembrado la semilla en los nuevos programadores que al no ver comunidad ni recomendaciones, no lo ven como una opción y lo descartan sin más, otro problema con el que me he topado son los frameworks disponibles, mucho menos que los disponibles para php, además más complejos de lo necesario/esperado. Por otro lado, una de las cosas que te llevan a trabajar sobre PHP es la cantidad de herramientas disponibles y la cantidad de gestores de contenido que pueden utilizarse, en Perl no es así, si que existen muchas herramientas sin embargo nada que encuentres “organizado”, respecto a los CMS, solo conozco Movable Type, su licencia no es 100% libre, ya que es del tipo “fremium”, una versión capada OpenSource, una versión completa luego de pago de licencia, pero esto no resta potencia a su versión libre, que es probablemente el mejor y más potente CMS que conozco.
Aquí la opción es tuya, C#, PHP, Ruby, Perl, el que prefieras, hoy te recomiendo jugar con Perl y conocerle, que sepas que existe como opción y que es tremendamente poderoso.

Una respuesta a “Apache Perl CGI en Mac OS X”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *