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: |
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.
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.
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.
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:
|
1999-05-23, generated by lfparser version 0.6