Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin en Perl
Ya hablamos de ASP, aprendimos qu es PHP, pero nunca
mencionamos nada acerca de este NOBLE LENGUAJE.
Perl permite agregar el buscado DINAMISMO a las
Martn A. SCANDROLI
masc@rec-inf.com.ar
pginas web, realizar consultas y operaciones en BASES
Programador de Perl, C, diseo web y otras yerbas. Actual-
DE DATOS, y mucho ms. En esta nota daremos los
mente trabaja en el rea de la electromedicina y radiologa. primeros pasos con nuestro primer programa Perl.
Figura 1. Formulario de ingreso de Figura 2. Pantalla de salida. Es Figura 3. El editor de textos UltraEdit
usuario. Puede tener el aspecto de importante para confirmar la correcta corriendo Perl. Con la lnea perl
nuestro sitio, lo importante es llamar ejecucin del script. Tambin es %p%n%e, en la opcin [Avanced/
correctamente al cgi. aconsejable que luzca como nuestro DOS Command], con <F9> ejecutamos
sitio. nuestros programas.
68 u s e r s . t e c t i m e s . c o m
Uno de los lenguajes
ms nobles y sencillos
para la creacin de
pginas web. Con
diversos caminos para
la ejecucin de tareas,
se ha convertido en una
alternativa simple y
econmica para encarar
proyectos en la Web.
gla. Al escribir hay que ser cuidadoso; posibilidad de tener Linux, o subir los directorio donde est alojado el binario
de lo contrario, no se hallarn ni si- programas al servidor sin mucho gasto de Perl: en la mayora de los casos,
quiera los propios errores. Lo ideal es telefnico, esto no ser necesario. El /usr/bin. Luego, para que corra, debe-
comentar cada funcin, explicando servidor web Apache (tanto para mos cambiarle las propiedades, de mo-
brevemente qu es lo que hace. En Perl Windows como para Linux) ya viene con do que sea ejecutable:
esto se realiza colocando el smbolo # el intrprete de Perl 5 por defecto. >chmod 755 archivo.pl
delante del texto; de esta forma, el Para realizar los scripts, que como di-
compilador omite lo que se escribi a jimos anteriormente son en ASCII, se Este paso debe realizarse una sola vez
la derecha hasta que encuentra un puede utilizar WordPad, un editor co- por cada archivo nuevo (en general se
<ENTER>. As, cuando queramos modi- mn, o UltraEdit-32 (www.ultraedit.com), hace en la primera ejecucin).
ficar o mejorar un programa, y lo reto- una gran herramienta a la hora de progra- Finalmente, para correrlo slo basta
memos luego de un largo perodo, nos mar varias lneas de cdigo (Figura 3). con invocar el archivo por su nombre:
ser ms fcil identificar las variables, Este ltimo tiene opciones que resultan >archivo.pl
las funciones y el modo de hacer las de gran ayuda a la hora de verificar si lo
cosas. Otra ayuda es la clsica tabula- que hicimos est bien. Analogas con C/C++
cin: cada vez que se abre un bloque Teniendo en cuenta un par de detalles,
(for, while, if, etc.), hay que dejar dos Primeros pasos para los programadores acostumbrados
espacios adelante. En resumen, es Para correr los ejemplos, con Active a trabajar en C, o incluso para los que
aconsejable realizar una escritura clara Perl instalado en la mquina, ejecutamos recibieron nociones bsicas de ese len-
y de fcil entendimiento, tanto para la siguiente sentencia en una ventana de guaje, la programacin en Perl les resul-
nosotros como para otras personas. MS-DOS, detrs del smbolo de sistema: tar cmoda y sencilla.
C:\pruebas>perl archivo.pl Uno de esos detalles es la forma de
Qu necesitamos? declarar las variables. Para ello se les
Una de las herramientas ms impor- donde perl es el intrprete del lenguaje antepone un smbolo segn su natu-
tantes es Active Perl 5.22 (www.activesta- (perl.exe), y archivo.pl es el script que raleza, por ejemplo, para una variable
te.com/pw32/), que servir para ejecutar y creamos. escalar del tipo entero sera $va-
probar los programas en la PC bajo Win- En el caso de UNIX hay que indicarle, lor, $a, $b, etc. Para un vector,
dows 32. Para los que cuenten con la siempre dentro del mismo archivo, el en cambio, se le antepone el smbolo
arroba, por ejemplo: @datos1[0].
La ventaja de esto reside en que no
Para saber ms debemos preocuparnos por su declara-
FreeCode.com www.freecode.com/cgi-bin/search.pl?query=perl cin, ya que el intrprete se encarga
ActiveState.com www.activestate.com de acomodrselo segn su convenien-
Perl.com, mucha info sobre este lenguaje www.perl.com cia (ver Tabla 1, Clases y tipos de
Ms material para quemarse el bocho language.perl.com variables).
PerlClinic.com, muy recomendado www.perlclinic.com Veamos un ejemplo:
$dato=6547CNN;
u s e r s . t e c t i m e s . c o m 69
EXPERTOS WEBMASTERS
el valor o cadena 6547CNN. Ahora, si
imprimimos: En esta tabla podemos ver cmo definir las variables para los distintos
print $dato; tipos de datos.
70 u s e r s . t e c t i m e s . c o m
LISTADO 1 - Agregar. pl </td>
#!/usr/bin/perl <td>
<b>$email</b>
$BaseDatos = /server/www/www.midominio.com.ar/public- </td>
/datos/usuarios.txt; </tr>
<tr>
# COMIENZO DEL PROGRAMA <td>
# de la siguiente forma invoco las diferentes subruti- <div align=right>Tipo de contador</div>
nas o funciones. </td>
&parseform; #analiza el formulario <td>
&ObtenerInfo; #recupera la informacin anterior <b>$tipo</b>
&Agregar; #agrega el usuario a la base de datos </tr>
&Salida; #Muestra una pantalla de salida </table>
u s e r s . t e c t i m e s . c o m 71
EXPERTOS WEBMASTERS
ra que sea comprendido por nuestro to para usar y, a continuacin, le siguen Internet, aparecieron las pginas perso-
programa. En pocas palabras: almacena los dems campos. Un ejemplo de base nales y se popularizaron los tutoriales y
los valores ingresados separados por los de datos sera el siguiente: dems sitios que ofrecen herramientas,
nombres que se les asignaron en los 0|Martn|martins@hotmail.com|1 cursos y tutoriales en lnea.
campos de los formularios. En nuestro 0|Pikachu|pikachu@pokemon.com|1 Es as que ahora es muy fcil encon-
caso son $FORM{nombre}, para ex- 0|Andrea|andreag@yahoo.com|2 trar lo que buscamos en cuestin de mi-
traer el dato ingresado en el campo lla- nutos, podemos imprimirlo y leerlo off-
mado nombre; $FORM{email}, para el El ltimo campo es el que usaremos line en el lugar en que estemos.
campo email, y as los dems. para saber las preferencias del usuario, Si vamos a comentar algunos de los
Una vez analizado el formulario, esta- si queremos que el contador sea exhibi- mejores sitios para aprender este len-
mos en condiciones de tomar esa infor- do, o no, que simplemente figure una guaje, no podemos olvidarnos de
macin asignndola a variables escala- publicidad o un logo. Perl.org (www.perl.org), el sitio oficial,
res comunes. Esto lo hacemos en la se- Por ltimo, la presentacin final, uti- donde hallaremos mucha informacin.
gunda rutina llamada &ObtenerInfo;, lizada para transmitirle al usuario que el No est en castellano pero, para los que
que nada ms asigna los campos ante- programa se ejecut normalmente. dominan el idioma ingls, les ser de
riormente analizados en las nuevas va- Otra de las sentencias clsicas de Perl, gran ayuda.
riables escalares. obligada si queremos enviar texto a la Si visitan Los Tutoriales (www.lostuto-
La tercera rutina es &agregar, encar- pantalla del navegador, es print Con- riales.com) o Programacin.Net (www.pro-
gada de adicionar todos los datos obte- tent-type: text/html\n\n;. Debemos gramacion.net), ambos comentados en la
nidos al final de la base de datos de avisarle al browser lo que vamos a en- nota de tapa de esta revista, podrn
usuarios del sistema. viarle a continuacin. Inmediatamente encontrar una gran cantidad de recur-
Lo que vemos son dos Opens separa- despus, estamos listos para pasarle el sos gratuitos y tutoriales, sobre este y
dos por el operador || (doble pipe), cdigo HTML que queremos mostrar, y la otros lenguajes similares. Otro sitio
que se encarga de decirle al intrprete forma ms sencilla de hacerlo es con parecido que les ser de gran ayuda es
de Perl que si falla la primera funcin, etiquetas. Webexperto (www.webexperto.com.ar). Si
es decir, si da algn error, ejecute la se- Con la sentencia print <<HTML; deci- bien no tiene una gran cantidad de
gunda. Entonces intenta abrir el archi- mos que imprima todo lo que sigue de- links, seguro que descubrirn algo de
vo en modo agregar al final (operador bajo (incluso lneas comentadas con utilidad.
>> delante del nombre del archivo). Si #), hasta que encuentre la etiqueta con
el archivo no existe, crea uno nuevo, el nombre que le asignamos, por ejem- Finalmente
vaco, listo para ingresar informacin plo HTML. Esta palabra debe escribirse Como vimos hasta aqu, Perl se con-
(operador >). en el margen izquierdo sin ningn es- vierte en una opcin ms que intere-
El nombre del archivo fue dado al co- pacio, ni delante ni detrs, y con un sante y, sobre todo, econmica para
mienzo e ingresado en la variable $Ba- <ENTER> para finalizar (tampoco lleva construir un sitio con contenido din-
seDatos. Tambin, dentro de la fun- el punto y coma). mico e interactivo. Adems, gracias a
cin open, le asignamos una etiqueta los servidores web como Apache, tanto
que identifique a este archivo abierto, Dnde aprender Perl para Windows, como para Linux, pode-
para poder manejarlo y direccionarle la Hasta hace muy poco tiempo, era mos mantenerlo fcilmente en nuestra
informacin. Inmediatamente despus muy difcil aprender un nuevo lenguaje propia PC sin necesidad de subirlo al
agregamos la lnea que contiene la in- de programacin por cuenta propia. servidor cada vez que queremos ver al-
formacin del usuario de un modo sen- Los textos o libros generalmente eran gn cambio o probar algo.
cillo: imprimimos en el archivo identi- difciles de conseguir y, en la mayora Tampoco nos olvidemos de que, por
ficado con el nombre USUARIOS la l- de los casos, venan en ingls, lo cual sobre todas las cosas, es una alternati-
nea que contiene los datos que ingre- los limitaba solamente a un grupo va muy econmica y que no requerir de
samos en el formulario. reducido de personas. inversiones costosas en cuanto a siste-
La base de datos ser un archivo AS- Afortunadamente, con la llegada de mas operativos y hardware.
CII que contendr los distintos campos
separados por el signo | (pipe); elegido Dnde alojar Perl
72 u s e r s . t e c t i m e s . c o m