perl2

Introducción

Perl (Practical Extraction and Report Language) es un lenguaje de programación desarrollado por Larry Wall  (lwall@netlabs.com) a partir otras herramientas de UNIX como son:ed,grep,awk,c-shell,

Para la administración de tareas propias de  sistemas  UNIX.

No es ni un compilador ni un intérprete, está en un punto intermedio, cuando mandamos a ejecutar un programa en Perl, se compila el código fuente a un código intermedio en memoria que se optimiza como si fuésemos a elaborar un programa ejecutable pero es ejecutado por un motor, como si se tratase de un interprete.

Perl es usado en tan variadas formas que en el sitio de Perl.com se ha puesto una sección dedicada a las diferentes formas que se usa. Robótica, genética, climas, seguridad, internet,.

esos son algunos áreas en la que están usando Perl .

Conceptos básicos de Perl:

Un programa de Perl es una colección de expresiones y definiciones en Perl metidas en un mismo archivo, entonces le indicas al sistema operativo que ese archivo es ejecutable y listo, lo ejecutamos.

para ello se necesita agregar en tu archivo como primera línea lo que se llama el shebang, normalmente se ve de la siguiente manera:

#!/usr/bin/perl

Ésta línea debe de ser la primera de tu archivo y es la ruta de perl en tu sistema, si por ejemplo estuvieras en un sistema tipo Windows, entonces la línea sería algo así:

#!C:\Perl\perl.exe

Perl se considera un lenguaje de formato libre, similar a C, en donde los espacios son opcionales y solamente son obligatorios si dos enunciados se confunden. Perl considera como espacios a los espacios blancos, tabulaciones, saltos de línea, retornos.

#!/usr/bin/perl

#Un comentario

print(); #comentario en línea de código

#De libre formato

$numero=10;

$numero     =        10;

$numero

=

10;

Un programa de Perl consiste en un archivo con enunciados de Perl que son tomados como una gran subrutina que se debe de ejecutar, en Perl no existe como en otros lenguajes, tales como C o Java, el concepto de una subrutina principal.

Los comentarios en Perl se definen con un símbolo de número #, todo de ahí hasta el final de la línea se considera como un comentario, no hay opción de hacer comentarios multilínea.

El intérprete de Perl filtra y compila el programa a un formato interno antes de ejecutarlo. Esto significa que nunca tendrás un error de sintaxis una vez que el programa empezó a ejecutarse. Todos los comentarios y espacios en blanco desaparecen por completo y no hacen que el programa se vuelva más lento. La parte de compilación asegura la rápida ejecución de las operaciones de Perl, y provee la facilidad de que tu código no lo tienes que pre-compilar para poder ejecutarlo, como pasa en C, por ejemplo.

Así que Perl es como un compilador y un intérprete. Es un compilador porque el programa completo es leído y filtrado antes de que se ejecute la primera expresión, y es un intérprete porque no hay ningún código flotando por ahí que haga que consumas espacio en el disco duro, así que de alguna manera, Perl es lo mejor de ambos mundos.

Variables y Datos

En PERL no hay que declarar los tipos de las variables.

Van precedidas por unos caracteres especiales como: $,@,%, que ya indican su tipo. Se distingue entre minúscula y mayúsculas, por tanto,  $A y $a son distintas

Variables Escalares:

Comienzan con el signo $y contienen datos de tipo escalar. Por escalar entendemos valores numéricos y/o alfanuméricos. Para la asignación se usa el signo igual (=) como en la mayoría de los lenguajes. En el caso de ser un valor alfanumérico (texto) este se escribe entres comillas. Al final de la asignación se debe escribir

Ejemplo: # se asigna un valor numérico con decimales

$edad=1.5;

# se asigna un valor númerico con decimales. Incluso en notación científica.

$edad=1.5; $notacion=1.2E10;

# Números octales y hexadecimales

$Octal=033;

$Hex=0x19;

Se pueden asignar valores entre variables:

$animal1=”Gato”; $animal2=”Perro”;

$animal2=$animal1;

Quedaría así:  $animal2=”Gato”

Interpolar variables dentro de otra:

$animal=”Gato $color de $edad años”;

Sería igual que $animal=”Gato blanco y negro de 1.5 años”  Asignar multiples valores a múltiples variables:

$A=”Hola”; $B=”,”; $C=”PERL”;

($a,$b,$c)=($A,$B,$C);

Las variables pueden actuar como numéricas o alfanuméricas, según el caso. El cambio se realiza en función del signo más (+) o el signo punto (.).

– Texto a número ( + ):

$A=”12″; $B=3; o  $A=”12″; $B=”3″;

$C=$A +$B sería igual a $C=15.

– Número a texto ( . ):

$A=”12″; $B=3; o  $A=12; $B=3;

$C=$A.$B sería $C=”123″;

Se puede hacer asignación multiple de variables:

$A=”Hola”; $B=”,”; $C=”PERL”;

($a,$b,$c)=($A,$B,$C);  quedaría así: $a=”Hola”; $b=”,”; $c=”PERL”;

Variables de matriz: arreglos:

Comienzan con el signo @ y contienen una lista de valores escalares (números y/o textos). Al ser una lista de valores para acceder a cada de uno estos se utiliza un número que indica su posición dentro de la lista. La numeración empieza en 0, y se coloca entre corchetes [ ]. A este número que indica la posición de un valor dentro de la lista del arreglo se denomina índice.

@animal=(“gato”,”perro”,”vaca”);

$animal[0] sería “gato”

$animal[1] sería “perro” y así hasta el último valor. También podemos hacer referencia a varios valores así:

$animal[1..2] equivale a los valores de $animal[1] y $animal[2]

$animal[1,2] equivale a los valores de $animal[1] y $animal[2]

Como vemos para la asignación se usa el caracter @ y para acceder a un valor individualmente se utiliza el signo $, ya que en definitiva un arreglo está formado por distintas variables escalares.

Una vez asignados los valores en esa lista estos pueden ser cambiados asignando nuevos valores a  las distintas variables que la forman.

$animal[0]=”ratón”. Ahora el arreglo quedaría así: @animal=(“ratón”,”perro”,”vaca”);

Igual que con las variables escalares los arreglos también aceptan la interpolación de otros arreglos.

@pajaro=(“gorrión”,”paloma”,”halcón”,”golondrina”);

@animal=(“ratón”,”perro”,”vaca”,@pajaro);

Ahora @animal valdría:

@animal=(“ratón”,”perro”,”vaca”,”gorrión”,”paloma”,”halcón”,”golondrina”);

Asociada a las matrices (arreglos), existen algunas funciones que ayudan a poner o sacar elementos de la lista.

Colocar nuevos elementos al final de la lista

push(@animal,”toro”,”oveja”);

push(@animal,@pajaro);

Sacar el último elemento del arreglo. Se asigna a una variable escalar.

$sacado=pop(@animal);

Reemplazar el primer elemento del arreglo.

unshift(@animal,“caballo”);

Sacar el primer elemento del arreglo. Se asigna a una variable escalar.

$sacado=shift(@animal);

Tenemos una notación especial para conocer el último índice del arreglo.

Del arreglo @animal=(“ratón”,”perro”,”vaca”,”gorrión”,”paloma”,”halcón”);

$#animal sería igual a 4.

Variables  matrices asociadas: “hashes”

Comienzan con el signo % y se tratan de matrices que se referencian por el par clave/valor. Como veremos a continuación los valores se introducen manteniendo una relación a pares. El primer valor es la clave o referencia del siguiente.

Se pueden asociar los valores a las matrices asociadas de 2 modos:

%dia=(Lun,”Lunes”,Mar,”Martes”,Mie,”Miércoles”,Jue,”Jueves”,Vie,”Viernes”,Sab,”Sábado”,Dom,”Domingo”);

%dia=(

Lun=> “Lunes”, Mar=> “Martes”, Mie=> “Miércoles”, Jue=> “Jueves”, Vie=> “Viernes”, Sab=> “Sábado”, Dom=> “Domingo”

);

La referencia a los valores se realiza mediante la variable escalar del la matriz asociada y sus claves

(Lun,Mar,Mie,…).

$dia{Lun} equivale a “Lunes”, $dia{Sab} equivale “Sábado”.   La asignación de valores individuales se realiza así:

$dia{Lun}=”LUNES”  o así $dia{“Lun”}=”LUNES”

Si recorremos la matriz asociada mediante algún algoritmo, los pares de valores no se muestran en el mismo orden de introducción; sólo se mantiene el orden del par clave/valor.

Al igual que con los arreglos, las matrices asociadas también tienen una serie de funciones asociadas, que facilitan su utilización:

delete($matriz{clave}):  Para borrar un par clave/valor de un “hash”, utilizamos la función delete que usa como argumento la variable escalar y la clave del par a borrar.

Ej: %lista(uno,”1″,dos,”2″,tres,”3″);

delete($lista{tres});

values(Hash): Muestra todos los valores de la matriz asociada.

Ej: %lista(uno,”1″,dos,”2″,tres,”3″);

print values(%lista); muestra todos los valores del “hash”, sin mantener un orden determinado.

keys(Hash): Muestra las claves de la matriz asociada.

Ej: %lista(uno,”1″,dos,”2″,tres,”3″);

print keys(%lista); muestra todos las claves del “hash”, sin mantener un orden determinado.

each(Hash): Muestra un par clave/valor.

Ej:%lista(uno,”1″,dos,”2″,tres,”3″);

print each(%lista); muestra sólo un par clave/valor de la matriz asociada.

exists $lista{clave}: idem.

Ej: $existe=exists $lista{dos}; Si existe, la variable $existe contendrá el valor 1. Ej: $existe=defined $lista{dos}; Si existe, la variable $existe contendrá el valor 1.

defined $lista{clave}: indica si existe o está definida una determinada clave dentro de la matriz asociada.

NOTA: Para mostrar ordenados los valores o claves se usa la función sort(…).

Ej: print  sort(keys(%lista));

 

Entrada/Salida:

Hasta ahora sólo hemos estudiado el tipo de variables. En este capítulo vamos a estudiar el modo de capturar/mostrar esos valores a través del teclado/pantalla.

La instrucción básica para mostrar el valor de las variables en pantalla es print. Nuestro primer programa en PERL,  podría ser este:

print “Hola Perl”;

Su salida en pantalla sería: Hola Perl.

Existen muchos modificadores para la salida de los valores de las variables. A continuación vamos a estudiar algunas de ellos.

“\n”    Nueva línea.

“\t”     Tabulación.

“\r”    Retorno de carro.

“\f”     Nueva hoja (formfeed).

“\b”   Espacio atrás  (backspace).

“\e”   Secuencia de ESCape.

“\u”   Pasa a mayúscula el primer carácter de texto siguiente”.

“\U”   Pasa a mayúscula todo el texto siguiente”.

“\l”     Pasa a minúscula el primer carácter de texto siguiente”.

“\L”   Pasa a minúscula todo el texto siguiente. “\E”   Fin del efecto de los modificadores \U,\L. “\a” Emite un pitido.

“\cC”  Combinación de Control+Letra. En este caso Control-C .

xN     el signo por (x) seguido de un número N repite un caracter o texto anterior N veces. Algunos ejemplos del efecto de estos modificadores serían estos:

print “Hola PERL \n”; Su salida es: Hola PERL seguido de nueva línea.

print “\UHola Perl”; Su salida es: HOLA PERL.

print “\lHola \LPERL \n”; Su salida es: hola perl seguido de nueva línea. print3x4; Muestra: 3333. NO CONFUNDIR x con el operador * (multiplicar). print “Hola “x3. Muestra:Hola Hola Hola Hola.

Los operadores aritméticos son modificadores que sólo afectan a los valores númericos:

print 3 + 4; Imprime el resultado de la Suma de 3 y 4.

print 4 – 3; Imprime el resultado de la Resta de 4 y 3.

print 3 * 4; Imprime el resultado de la Multiplicación de 3 por 4.

print 8 / 4; Imprime el resultado de la División de 8 entre 4. print 3 ** 3; Imprime el resultado de la Elevación de 3 al cubo. print 4 % 2; Imprime el resultado del Módulo de 4.

Lo realmente particular del lenguaje PERL es el método que usa para la entrada de datos desde el teclado. Para asignar un valor desde el teclado a una variable, se asigna a la variable la representación del teclado

<STDIN> (STandarDINput). Ej: $var=<STDIN>

print “¿Cómo te llamas?: “;

$nombre=<STDIN>;

print “Tu nombre es:$nombre”;

Este pequeño programa pide un nombre de persona y su resultado final es: Tu nombre es: seguido de ese nombre.

Existe una función asociada a la entrada de datos desde el teclado  que suele usarse para eliminar el último caracter de la entrada, normalmente nueva línea.

chop(…): elimina el último caracter de una entrada por teclado.Ej: $nombre=chop($nombre);

Como Instalar Perl en Windows

Instalando Perl en Windows:

Mucha gente siempre pregunta en los foros como hacerle para instalar perl en Windows, por lo que decidí hacer un pequeño tutorial con lo más básico para poder ejecutar CGI’s en tu Windows como si fuera un servidor web.

Paso 1 – Instalando el instalador

Antes que nada para poder correr el programa de instalación para perl y Apache necesitas tener un programa llamado “Windows MSI”, que puedes encontrar en:

Para Windows 9x
http://downloads.activestate.com/contrib/Microsoft/MSI2.0/9x/InstMsiA.exe

Para Windows NT
http://downloads.activestate.com/contrib/Microsoft/MSI2.0/NT/InstMsiW.exe

Paso 2 instalando el Perl

Ya que tenemos nuestro instalador de Windows

Ahora debemos de bajar el perl e instalarlo, hay una versión de perl para Windows creada por ActiveState y la pueden encontrar en el siguiente URL:http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Una vez que bajaste el programa de instalación, ejecutalo y sigue todos los pasos que se indican. No voy a elaborar más en las instalación, estoy asumiendo que si esperas aprender a programar es porque tienes la capacidad de instalar un programa 🙂

Paso 3 – Instalando el Apache

Ya que tenemos nuestro perl instalado ahora necesitamos un servidor.

Recomiendo que bajes en instales el Apache para Windows en:

http://httpd.apache.org/download.cgi

Selecciona la versión para Windows en .msi, ya que lo bajaste corre la instalación y cuando te pregunte el tipo de instalación que quieres pide la versión “Tipica”, como siempre sigue todos los pasos y si todo sale bien ya tendras el Apache instalado en tu máquina.

Ejecuta el programa que dice “apache.exe” en el directorio donde seleccionaste que fuera instalado el Apache para correr tu servidor. Ya que este corriendo abre tu navegador y pon en la barra de Dirección: “http://localhost/&#8221;. Te debe de aparecer una página con el mensaje “Felicidades! Tu Servidor de Apache fue instalado con éxito”.

Paso 4 – Probando la instalación:

Para probar que todo esta correctamente instalado, hagamos una pequeña prueba con un CGI.

Busca el directorio donde fue instalado tu Apache y en el cgi-bin vamos a crear un CGI que se llame “prueba.cgi”, normalmente podrás encontrar el directorio en (C:\Program Files\Apache Group\Apache\cgi-bin).

En el CGI que acabas de crear vamos a poner el código para el famoso CGI “Hola Mundo”:

#!C:\perl\bin\perl.exe -w

print “Content-type: text/html\n\n”;
print “<center><h1>HOLA MUNDO!</h1></center>\n”;
exit(1);

Este CGI lo que va a hacer es desplegar en la pantalla el mensaje “HOLA MUNDO!”.

Pon mucha atención en la primera linea que dice:

#!C:\perl\bin\perl.exe –w

Ahí es donde después del símbolo de ! tienes que poner el path al programa perl.exe, si hiciste todo como indicaba el programa de instalación ese debe de ser el path, de otra manera debes de cambiarlo para que corresponda al directorio donde lo instalaste.

Abre tu navegador(recuerda tener tu servidor corriendo:ver paso anterior) y pon en la barra de Dirección: “http://localhost/cgi-bin/prueba.cgi&#8221; y si aparece correctamente el mensaje ya tienes correctamente instalado tu servidor Apache y el perl.

Paso 5 – Manejando los errores:

Si un CGI tiene errores al intentar correrlo en tu navegador recibirás un mensaje que dice “Internal Server Error”, que significa que Perl no pudo compilar bien el programa y por eso no lo pudo ejecutar.

Para ver exactamente lo que dijo Perl puedes ver el log de error que Apache guarda. Entra al directorio donde tienes instalado el Apache y busca el directorio que se llama logs, en ese directorio encontrará un archivo que se llama “error.log”. Normalmente esta en: (C:\Program Files\Apache Group\Apache\logs\error.log).

Paso 6 – Ejecutando scripts desde el command line

Si quieres ejecutar scripts desde el command line debemos de editar el autoexec.bat para que Windows localice el Perl.

Cuidado:  Siguiente pasos: ya que si no se hacen bien puedes ocasionar un daño dañar la configuración del sistema.

Lo primero es que hagas una copia de tu autoexce.bat, como nota rápida el autoexec.bat  que es un archivo de configuración que corre el sistema al inicializar y lo puedes encontrar en el root de tu disco C.

Después de tener copia hecha del  autoexec.bat por si algo sale mal.

Seguimos con el siguiente paso: Ejecuta el notepad.exe busca tu autoexec.bat y ábrelo.

nota: En Windows XP el archivo autoexec.bat se llama autoexec.nt

En mi computadora el autoexec.bat se ve algo así:

SET COMSPEC=C:\WINDOWS\COMMAND.COM
SET windir=C:\WINDOWS
SET winbootdir=C:\WINDOWS
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;
SET TEMP=C:\WINDOWS\TEMP

para mas información haca hay un vídeo del programa y como programar hola mundo:http://www.youtube.com/watch?v=uRI1aVGDMGY

NOMBRES: Juan Sebastián Rojas Carrillo

Pipe robles

Anuncios

Acerca de juan sebastian

ESTUDIANTE
Esta entrada fue publicada en Uncategorized. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s