Programación en Perl I
Al igual que ustedes yo también aprendo por lo cual quiero compartir lo que yo se con ustedes para que todos juntos podamos aprender cada ves mas.
Perl es un lenguaje scripting interpretado, eso significa que necesitamos un software que leerá nuestros scripts y los ejecutará.
Les demostraré que tan facil puede ser aprender este lenguaje tan flexible, útil y facil de aprender.
Este tutorial va dedicado a usuarios de Linux en todas sus distribuciones ya que por defecto viene el software que ejecutará nuestros scripts llamado “Perl”, en el caso de Windows tendrás que instalar “Active Perl” y “Cygwin” para acomodar cada función de linux y hacer mas poderosos nuestros scripts.
Mi primer script
Abrimos nuestro editor de texto (en Linux podemos usar gedit, kwrite o lo que sea... en Windows usaremos el block de notas) y comenzaremos a crear nuestro primer script:
Código
#!/usr/bin/perl -w #test.pl
¿Que significa cada linea, como lo ejecutamos y que hace?
Cada linea que comienza con el carácter "#" será omitido al momento de ejecutarse el script, esto significa que son comentarios o cualquier cosa que quieras escribirle, esto no se ejecutará ni será tomado en cuenta.
En el caso de linux esto significa que es un código en perl e indica la dirección de perl, esto siempre Debes ponerlo al rpincipio, si no lo pones no pasa nada pero si se hace por costumbre para identificar que es un script en perl. Al pasar el mouse sobre el archivo este tomará el ícono de ejecutable devido a esa primera linea y será cosiderado un "script en Perl".
Código
#!/usr/bin/perl -w
Ahora pongo un comentario para indicar el nombre del archivo (esto no es obligación pero yo lo puse para mayor orden).
Código
#test1.pl
Ahora ejecutamos un print para escribir en pantalla la palabra hola. Esto puede crearse de muchas maneras según lo necesites, también esribimos “\n” el cual significa que al final de la palabra hola se escribirá el carácter “return” para seguir en la linea de abajo.
Código
Esto también podemos ejecutarlo de las siguientes maneras:
Código
Al igual que en el lenguaje C++ puedes utilizar "printf" de la misma manera pero no "echo".
Acá le decimos que es el término del script, puedes no ponerlo pero se hace por costumbre en un buén script. Cuando digo exit(0) significa que no hubo errores, si escribo exit(1) le estoy diciendo al sistema que se produjo un error o los resultados no fueron lo esperado, esto lo puedes utilizar en complementos que veremos en otra oportunidad.
exit(0);
¿Como lo ejecutamos?
Guardaremos nuestro texto en el escritorio como test1.pl y desde la consola de comandos ejecutaremos lo siguiente:
En Linux: perl ./test.pl
En Windows: c:\perl\perl.exe "%homepath%\escritorio\test.pl"
Nos aparecerá la palabra hola
Citar
yan@Lola:~/Desktop$ perl ./test.pl
hola
yan@Lola:~/Desktop$
hola
yan@Lola:~/Desktop$
Ahora para practicar escribiremos algunos textos en pantalla:
Código
#!/usr/bin/perl -w #test2.pl
While y for
Estas dos funciones son muy útiles para automatizar todo un proceso:
Código
#!/usr/bin/perl -w #test3.pl my $cuenta = 1; #------------------------------------------------------------------------------------------------- for $i ( "000" .. "100" ) { } #------------------------------------------------------------------------------------------------- while ( $cuenta <= 100 ) { $cuenta++; } #------------------------------------------------------------------------------------------------- for $i ( 000 .. 100 ) { } #-------------------------------------------------------------------------------------------------
¿Que tal si me escribes en pantalla 100 veces la frase "no molestaré mas a mis compañeros" ? a Vart de los Simpsons de seguro le gustaría jajaja:
Código
#!/usr/bin/perl -w #test4.pl for $i ( "000" .. "100" ) { }
Si te fijas utilizé tres formas diferentes de hacer lo mismo, además con el carácter "#" puse unas lineas para separar cada código y así se vea mas ordenado.
Ustedes dirán... ¿Para que sirve "my $cuenta = 1;"? :
Declaraciones
Código
#!/usr/bin/perl -w #test5.pl my $saludo = "Hola"; my $nombre = "WHK";
Esto nos escribirá lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test5.pl
Hola WHK , como estas?
yan@Lola:~/Desktop$
Hola WHK , como estas?
yan@Lola:~/Desktop$
También podemos crear una declaración de diferentes formas:
Código
#!/usr/bin/perl -w #test6.pl my ($saludo, $nombre); $saludo = "Hola"; $nombre = "WHK";
Variables
Código
¿Que significa esto?
#!/usr/bin/perl -w #test7.pl my ($saludo, $nombre); $saludo = "Hola";
No se asusten :p es facil, es mas... puedes copiar el código y usar siempre el mismo, solo cambias ciertas cosas que te diré ahora,
Cuando ejecutas tu script te dirá lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test7.pl
uso: ./test.pl Nombre
yan@Lola:~/Desktop$ perl ./test7.pl WHK
Hola WHK , como estas?
yan@Lola:~/Desktop$
uso: ./test.pl Nombre
yan@Lola:~/Desktop$ perl ./test7.pl WHK
Hola WHK , como estas?
yan@Lola:~/Desktop$
Si te fijas la primera ves que lo ejecuté me decía como utilizarlo... que primero debería ejecutar el script mas un espacio y el nombre, al ejecutarlo nuevamente le di mi nombre y me lo escribió...
Citar
yan@Lola:~/Desktop$ perl ./test7.pl Octalh
Hola Octalh , como estas?
yan@Lola:~/Desktop$
Hola Octalh , como estas?
yan@Lola:~/Desktop$
Ahora implementemos variables con declaraciones for o while , no se asusten con tanta palabrería porque no es tan dificil cuando escribes por ti mismo el código:
Código
#!/usr/bin/perl -w #test8.pl my ($cuenta); for $i ( 1 .. $cuenta ) { }
Esto me dará lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test8.pl 10
Escribiendo 1...
Escribiendo 2...
Escribiendo 3...
Escribiendo 4...
Escribiendo 5...
Escribiendo 6...
Escribiendo 7...
Escribiendo 8...
Escribiendo 9...
Escribiendo 10...
yan@Lola:~/Desktop$
Escribiendo 1...
Escribiendo 2...
Escribiendo 3...
Escribiendo 4...
Escribiendo 5...
Escribiendo 6...
Escribiendo 7...
Escribiendo 8...
Escribiendo 9...
Escribiendo 10...
yan@Lola:~/Desktop$
Si quieres agregar mas de una variable tendrás que modificar su código:
Código
#!/usr/bin/perl -w #test9.pl my ($cuenta, $palabra); for $i ( 1 .. $cuenta ) { }
Esto quiere decir:
Código
Si las variables no son 2 entonces que no ejecute nada y que diga su utilización y si hay dos variables entonces la primera será $palabra y la segunda será $cuenta. Puedes modificar ese orden a tu gusto o agregarles las variables que tu quieras. $0 significa el nombre del mismo archivo que estás ejecutando.
If y Else
Ahora les voy a mostrar algo muy útil:
Código
#!/usr/bin/perl -w #test10.pl my ($cuenta, $palabra); if ($cuenta == 0) { $cuenta = 10; } else { for $i ( 1 .. $cuenta ) { } }
Esto significa que cuando ejecutes el script primeramente verificará la variable:
Código
Luego verificará que si la variable $cuenta es igual a cero entonces le asignará el número 10
Código
if ($cuenta == 0) { $cuenta = 10; }
Si no es igual a cero entonces escribirá en pantalla lo pedido:
Código
else { for $i ( 1 .. $cuenta ) { } }
Y como siempre al final termina todo:
Código
Ahora utilizaremos if para saber si existen archivos o no:
Código
#!/usr/bin/perl -w #test11.pl if (-e "test2.pl") { } else { }
Lo mismo pero con variables:
Código
#!/usr/bin/perl -w #test12.pl my ($archivo); if (-e $archivo) { } else { }
Ahora que ya sabes un poco mas sobre scripts en Perl deverás practicar creando tus propios códigos cada ves más complejos o hasta donde esté tu conocimiento e imaginación.
En el próximo número publicaré un script que estoy creando, como averigüé sobre cada función y muchas otras cosas más como el uso de sockets y uso de comandos system();.
Saludos y hasta la próxima. Att. WHK.
Puedes bajar el documento en formato odt en tar.gz desde acá