Hogar Mapa Indice Busqueda Noticias Arca Enlaces Sobre LF
[Top bar]
[Bottom bar]
[Foto del autor]
por Guido Socher

Sobre el Author:

Guido es un fan de Linux desde hace mucho tiempo y recientemente a empezado como editor de Linux Focus . Estos d�as est� tambi�n muy ocupado renovando la casa y plantando lechuga y otras cosas en el jard�n.

Contenidos:

  1. �Qu� es perl?
  2. Un programa sencillo
  3. Documentaci�n

Perl parte I

[Illustration]

Resumen:

Este es el primero de una serie de art�culos sobre perl. No vas a necesitar ninguna experiencia especial para entender este art�culo, aunque, alg�n conocimiento de cualquier lenguaje de programaci�n procedural (como C o Pascal) te har�a m�s f�cil empezar con perl.



 

�Qu� es perl?

Perl es un lenguaje de script que fue desarrollado originalmente por Larry Wall. El c�digo fuente de un programa en perl se puede "ejecutar " directamente por medio del programa perl mismo (el interprete de perl). El programa perl se suele instalar en /usr/bin/perl. Perl es en muchos aspectos bastante similar a los cl�sicos programas unix awk y sed pero perl ha ido mucho m�s ay�. Hoy puedes incluso hacer programaci�n orientada a objetos y dise�ar interfaces gr�ficos de usuario con perl. Perl puede extenderse facilmente en sus caracter�sticas mediante librer�as y el archivo perl en CPAN tiene muchas de ellas. Este primer art�culo no entrar� de todas maneras en temas avanzados. En vez de eso me gustar�a mostrar algunos de los elementos b�sicos y dejar cosas m�s avanzadas para art�culos posteriores.

Perl es un lenguaje de scripting muy �til. Es una herramiente universal para cualquiera con algunas habilidades de programaci�n.

 

Un programa sencillo

Guarda el siguiente programa con el nombre my1stprg y entonces hazlo ejecutable con el comando
chmod 755 my1stprg . Despu�s, ejectua el programa y mira lo que hace.

#!/usr/bin/perl -w
print "What is your name?\n";
$name=<STDIN>;
#remove the new-line character:
chomp($name);
$len=length($name);
print "\nHello $name! Your name is $len characters long\n";

Veamos el c�digo. La primera linea no es un comentario. Es el tipo de linea empezando con "#!", t�pica de los scripts unix y le dice al sistema operativo que es lo que tiene que hacer con este fichero de texto. Cualquier linea despu�s de la primera que comience con el caracter # es una linea de comentario. (p.e. la linea 4). Podemos ver tambi�n que todas las sentencias terminan con un punto y coma. Una variable empieza con un signo dollar. Las variables perl pueden tomar cadenas, enteros y n�meros en punto flotante. Los datos se convierten autom�ticamente al tipo correcto dependiendo del contexto en el que la variable se use. Las variables-$ se llaman variables escalares. Perl tambi�n tiene arrays (empezando con @ en vez de $) y tablas hash (empezando con % en vez de $). Estos tipos de variables se discutiran en un art�culo posterior.
La funci�n print de la seguna linea de nuestro programa escribe una cadena de texto en la salida estandar (stdout). Es similiar al comando echo en shell scripts y las variables se expanden a sus valores si la cadena se encierra en comillas dobles. Las variables en el interior de comillas simples no son expandidas y se puede usar un backslash (\) para citar (entrecomillar, escapar) caracteres especiales como el signo del dolar o una comilla dentro de comillas. Aqu� tienes un ejemplo:

#!/usr/bin/perl -w
$name="joe";
print "1 $name\n";
print '2 ', $name , "\n";
print '3 ', '$name',"\n";
print "4 \"$name\"\n";
print "5 \$name\n";
print "6 \"\$name\"\n";

This will produce:

1 joe
2 joe
3 $name
4 "joe"
5 $name
6 "$name"

De vuelta a nuestro primer sencillo programa. La linea $name=<STDIN>; ofrece al usuario un prompt para la entrada de datos y espera hasta que el/ella teclean la tecla return. Despu�s de esa linea la variable $name tiene o que el usuario escribio incluyendo el car�cter de fin de linea. La sentencia chomp($name), elimina este car�cter de nueva linea de la variable $name. Finalmente la funci�n lenght cuenta el n�mero de caracteres en $name.

Desafortunadamente nuestro programa tiene un error (un bug). �Qu� ocurre si pulsas tab o espacio despu�s de tu nombre? Este tambi�n ser� contado. �C�mo podemos solucionarlo?
Lo que necesitamos es alg�n tipo de funci�n de busqueda y reemplazamiento que elimine cualquier espacio en blanco del nombre. Perl es muy bueno manipulando cadenas de texto y ofrece exactamente eso. [ \t] es una expresi�n regular que coincide (match) con espacios y tabuladores. En perl esto tambi�n se puede abrebiar y escribir como \s. (Aqu� se puede leer m�s acerca de expresiones regulares). El comando se sustituci�n de perl toma una expresi�n regular y tiene la sintaxis: $name=~ s/regexp/replacement/g; Si dejamos la cadena de reemplazo vacia entonces todas las ocurrencias donde encaje la expresi�n ser�n reemplazadas con nada. Ahora el programa se ver�a como:

#!/usr/bin/perl -w
print "What is your name?\n";
$name=<STDIN>;
#remove the new-line character:
chomp($name);
print "\nHello $name!";
#remove spaces from the string:
$name=~s/\s//g;
$len=length($name);
print " Your name is $len characters long\n";

Este no es un programa muy �til dado que no tiene ninguna sentencia de control (bucles y sentencias if) pero nos da una idea b�sica. Esta ser�e continuar� y llegaremos a programas m�s complicados pronto.

 

Documentaci�n

En el curso de esta ser�e aprender�s perl paso a paso. Pero si quieres, puedes descargar ya este peque�o manual de referencia (perlref-5.004.1.tar.gz) . El fichero README incluido explica como imprimir un peque�o folleto a partir de �l.

Tambi�n puedes probar "man perl" y "man perlfunc" para ver que funciones est�n disponibles. De todas maneras, todo esto es material de referencia y para aprender perl deber�as seguir este tutorial o leer un libro como "Learing Perl" from O'Reilly.


Contactar con el equipo de LinuFocus
© Guido Socher
LinuxFocus 1999
Translation information:
en -> -- Guido Socher
en -> es David Abilleira Freijeiro

1999-05-23, generated by lfparser version 0.6