PERL
|
¿Qué es Perl? Perl (Practical Extraction and Report Languaje) es un lenguaje creado a principio de los noventa por Larry Wall, (larry@wall.org) y un aspecto muy interesante es que su distribución es gratuita. Perl es un lenguaje pensado para la manipulación de cadenas de caracteres, archivos y procesos. Esta manipulación se va simplificada por el importante número de operadores a disposición del usuario. El lenguaje Perl se percibe habitualmente como un lenguaje intermedio entre los shell scripts y la programación en C. En efecto, los programas en Perl son una sucesión de instrucciones y son similares a los shell scripts porque no existe un procedimiento principal como la subrutina main en C. Sin embargo, se parece al lenguaje C en su sintaxis y en el número importante de funciones que permiten la manipulación de cadenas de caracteres y archivos. El lenguaje Perl no es precompilado, pero aún así es más rápido que la mayoría de lenguajes interpretados, en especial que el Bourne Shell. Esto se debe a que los programas en Perl son analizados, interpretados y compilados por el interprete perl antes de su ejecución. Estas características hacen que el mantenimiento y la depuración de un programa en Perl sean mucho más sencilla que el mismo programa escrito en C. Por todo esto, Perl es un lenguaje muy utilizado en los dos campos siguientes:
Entre las dos versiones más populares populares de Perl, la 4.3 y la 5.0, que de hecho poseen diferencias importantes entre una versión y otra. Seguramente el lector se pregunta porque surge la duda entre usar una versión vieja y una nueva, por regla general las nuevas versiones son mejores que las anteriores de modo que las opacan en todo sentido, Perl no es la excepción a esta regla, el único factor que impide una transición inmediata es que no son 100% compatibles. La versión 5 de Perl es una reescritura total que ya incluye un manejo de estructuras abstractas de datos mucho mas poderoso, incluso, soporta la orientación a objetos a su manera (lo que rompe en gran medida con la filosofía tradicional de Perl de una programación más parecida a los Shells de Unix que al modular lenguaje C). De modo que las librerías, por ejemplo para creación de CGIs no funcionan de una función a otra por lo que la migración es poco practica. En el tutorial descrito en Tutorial de Perl, http://www.cicei.com/gsi/tutorial_perl/indice.htm [3]se sigue la filosofía tradicional de Perl y no profundiza en la orientación a objetos. "Hay mas de una forma de
hacerlo"
Indentación. Una costumbre ya
clásica de la programación, indento el código dos espacios hacia
adelante al abrir cada bloque, y termino la indentación al terminar el bloque,
de modo que las llaves de apertura y cierre quedan a la vista y en la misma
columna, solas en sus renglones (esto incrementa algo el numero de
líneas, pero facilita sobremanera la búsqueda y corrección de los diversos
bloques de control). Nombres de variables y demás. dar la máxima claridad a los nombres de las variables sin hacerlos demasiado grandes, el nombre de los contadores y variables que guardan valores concernientes a un pequeño segmento de código por lo regular son de un par de letras (c1, c2, ... cx para los contadores, s1, s2, etc para cadenas de entrada etc.) mientras que las variables que afectan a diversos segmentos (a modo de regla, que tienen su definición en una pantalla distinta a donde se usan) tienen nombres explicativos que no excedan los 12 caracteres. Además, los nombres de archivos se usan con mayúsculas (ARCHENT, ARCHSAL, etc) y las clases tienen su primera letra mayúscula.
Cómo enviar emails usando Perl y Sendmail? Es una tarea habitual el que un programa CGI tenga que informar a un conjunto de usuarios respecto a nuevos datos generados. Por ejemplo, usted puede ser uno de los miles de webmasters que han solicitado el uso de un contador gratuito de páginas web, que le envía periódicamente estadísticas sobre los accesos a sus páginas, a través del correo electrónico. Este tipo de servicios, tienen la responsabilidad de informar a tantos usuarios, que requerirían de al menos una persona, a tiempo completo, dedicada a enviar estos datos a los usuarios. Claramente, esta no es una opción ni si quiera, para una gran empresa. La forma de automatizar esta tarea es dejarle a Perl hacer el trabajo duro. En este artículo, se crea un script en Perl, que hará exactamente esto. Vamos a ir paso a paso, dando explicaciones y analizando los puntos más complicados. Perl, por ser como es, ofrece al programador varias posibilidades a la hora de hacer una misma tarea, y con ello, incluimos el envío de mensajes con sendmail. Sendmail es un programa de código abierto que se usa en la mayoría de los sistemas Unix y en unos cuantos NT. Sendmail, como su nombre indica, tiene la función de enviar emails. Vamos a usar la capacidad de Perl de abrir pipes a otros programas para así ejecutar sendmail y pasarle los parámetros necesarios. Si usted no conoce en profundidad sendmail, no importa. Simplemente considere que Sendmail se va a encargar de enviar el contenido del mensaje y las cabeceras correspondientes a sus destinatarios. Aquí tenemos, por ejemplo, un sencillo programa que avisa al suscriptor de un mailing list, que su petición ha sido aprobada:
A primera vista, puede comprobar que este programa es muy sencillo, y si no fuera tan explícito en los comentarios, aún se podría reducir más. Si profundiza un poco en el código, verá que no es difícil de interpretar, incluso si es usted un iniciado del Perl. Sin embargo, el programa cumple muy bien su función de enviar correo. Mírelo línea por línea ... El cgi capta los datos del formulario web, el cual se compone de campos de texto: <FORM method="POST" action="http://perlfect.com/cgi-perlfect/cgimail.pl"> El script usa el módulo CGI.pm para obtener los datos del formulario. La función param() del módulo CGI.pm, devuelve el valor de un campo del formulario si damos su nombre como argumento. Esto es todo lo que necesita saber por ahora, ya que la usamos simplemente para averiguar que ha tecleado el usuario en el formulario. En caso de que éste no haya escrito nada en el formulario, el script devolverá un mensaje de error, solicitando al usuario que vuelva a rellenar el formulario.
Si el usuario introduce una dirección de email, se agrega al final de un fichero de texto para un uso posterior por otro programa, tras lo que el script devuelve un email de confirmación al usuario. Un mensaje de email está compuesto por cabeceras y contenido. Hay muchas posibles formatos de cabeceras, pero el más habitual es el siguiente:
Las cabeceras preceden al contenido del mensaje. La cabecera Content-type se define justo antes del contenido y le siguen siempre dos caracteres de cambio de línea. Sendmail ofrece la posibilidad, como la mayoría de los programas unix, de leer a partir del standard input, por lo que lo único que necesitamos hacer es abrirle un pipe y alimentarlo con los datos que queremos que procese. Apreciarán que hemos pasado el parámetro -t a sendmail. Éste simplemente le indica a sendmail que busque en los datos las cabeceras To:, Cc: o Bcc: y obtenga los destinatarios de ahí. Una vez abierto correctamente el pipe, volcamos el mensaje. Primero, las cabeceras, cada una seguida de un caracter cambio de línea, luego un cambio de línea adicional y, por fin, el contenido del mensaje. Después cerramos el pipe. Así, el mensaje de email se abrá enviado correctamente! Estos son algunos casos prácticos donde usar sendmail y perl:
Recomendaciones. Si deseas un curso de Perl, muy amigable te recomiendo el Curso de Perl Si tienes preguntas en cuanto a Perp y PHP
visita PERP Vs PHP
|