Está en la página 1de 22

Trabajo De

Investigacin
Lenguaje Perl
Profesor: Jos Luis Villarroel Hueche
Integrantes: Marcelo Jara
Sergio Hernndez
Asignatura: Lenguaje de Programacin II

Indice
Introduccin.. Pg 1
Orgenes e historia . Pg 2
Caractersticas generales del LenguajePg 3
Estructuras de control, iteracin (bucles) y decisin..Pg 4 a Pg 15
Utilizacin en Gnu-Linux...........Pg 16 a Pg 18
Ejemplos de aplicacin en Gnu-Linux Pg 19 a Pg 20

Introduccin

El objetivo de este informe introducirnos un poco a lo que es el lenguaje de


programacin Perl, partiendo primero por la historia desde cuando fue creado por
el Sr. Larry Wall y sus desarrollo que tuvo con el pasar de los aos, Tambin se
podr apreciar en el informe las caractersticas generales y fundamentales del
lenguaje de programacin Perl como tambin las estructuras de Control, iteracin
lo que corresponde a las estructura de bucle y las estructuras de decisin. Otro
punto a ver en el informe es la utilizacin de este lenguaje en los sistemas GNULinux y como punto final alguno de los ejemplos que se pueden desarrollar en el
lenguaje de programacin Perl.

Orgenes e Historia.
Perl, es un lenguaje de programacin creado a finales del ao 1987 por el escritor
y programador Larry Wall mientras trabajaba como programador en la empresa
Unisys. Wall. Anunci la primera versin del lenguaje (v 1.0) en el newsgroups
comp.sources.misc el 18 de Diciembre de 1987, publicando en 1988 la versin 2.0
del lenguaje y su nombre segn el mismo autor, no es un acrnimo, como muchos
creen y de hecho para el mismo autor esto no fue importante aunque en muchas
publicaciones se presenta la palabra Perl como el acrnimo de Practical Extraction
and Report Language.
En esta segunda versin se mejoraron algunos usos en el manejo de
expresiones, siendo en la versin 3 publicada en el ao 1989 donde se aade
soporte para datos binarios. Hasta el ao 1991, la nica documentacin formal del
uso del lenguaje se basaba en la pgina de manual de Unix. (man perl). En el
mismo ao, se publica el libro Programming Perl, al que se le denomin Perl V4
lo cual no hace una referencia a cambios en el lenguaje mismo, sino que se
diferencia por la versin 3 el hecho de su publicacin documentada en este libro.
Se destaca esta publicacin por aparecer en la portada la imagen de un camello
por lo que se le denomina hasta hoy como el libro del camello para hacer
referencia a esta publicacin.
La versin 4 de Perl culmina con algunos cambio en general no mayores
hasta la versin 4.036 en 1993, en donde Wall se centra en el trabajo para la
versin 5 del lenguaje, desarrollo que se continu en 1994. En 1995 el lenguaje
Perl, a travs de trabajos distribuidos en la lista de correo perl5.porters creada en
mayo 1994, se comienza el trabajo para adaptar el lenguaje a diferentes
plataformas, y se convierte en el primer foro para el desarrollo y mantenimiento de
Perl 5.
Perl 5, fue publicado el 17 de Octubre de 1994 y mejora desde sus
versiones anteriores, aadiendo muchas caractersticas nuevas como objetos,
referencias, paquetes y mdulos, siendo stos mdulos una caracterstica muy
importante del lenguaje, permitiendo al programador un mecanismo para extender
el lenguaje sin necesidad de modificar el intrprete.
El 26 de Octubre de 1995, se crea el Comprehensive Perl Archive
Network (CPAN) que es una coleccin de sitios web que almacenan y distribuyen
cdigos y documentacin para el lenguaje Perl.

En la actualidad se trabaja sobre la versin 5.20.1 y se puede trabajar en


plataformas basadas en Unix, Mac OS y Windows.

Caractersticas generales del Lenguaje

Perl es un lenguaje denominado como de propsito general originalmente


desarrollado para la manipulacin de texto y en la actualidad usado para muchos
otros tipos de trabajo, incluyendo administracin de sistemas, desarrollo web,
programacin de sistemas basados en red, y su uso mas popular es programacin
CGI.

Este lenguaje est diseado para ser practico mas que hermoso (segn
referencia de la pagina oficial de Perl), es de uso sencillo y eficiente. Una de sus
mayores caractersticas es su facilidad de uso. Soporta programacin por
procedimientos y orientada a objeto y posee una gran capacidad para manejar
texto.

En general el lenguaje Perl no difiere mayormente en estructura del


lenguaje C, y por lo mismo, posee variables, expresiones, asignaciones y bloques
de cdigo delimitados por llave, estructuras de control y subrutinas. Tambin
posee caractersticas de la programacin shell. Todas las variables poseen una
marca Sigil precedente al nombre de la variable con lo que identifican
inequvocamente los nombres de las variables dentro del cdigo. As mismo, el
lenguaje, tambin toma otras caractersticas de otros lenguajes para enriquecer su
facilidad de uso y potencia a nivel de lenguaje.

La versin 5 del lenguaje, al introducir la caracterstica de POO, introduce el


uso de clases, referencias, paquetes y la introduccin de variables de mbito
lxico. Por otra parte una de las caractersticas de la versin 5 del lenguaje, es la
capacidad de empaquetar cdigo mdulos reutilizables, con lo que el cdigo se
facilita y se hace mas eficiente.

Estructuras de control, iteracin (bucles) y decisin.

Para correr una aplicacin Perl en plataformas basadas en Unix se utilizar en la lnea de
comando :

1. perl progname.pl
Al editar un nuevo archivo de texto para escribir cdigo, es bueno poner en la primera
lnea lo siguiente :
1. #!/usr/bin/env perl
esta lnea hace referencia al SO donde encontrar el interprete de Perl, as como en shell.

Es recomendable tambin continuar con estas dos lneas adicionales al comienzo del
programa :

1. #!/usr/bin/perl
2. use strict;
3. use warnings;

Estas dos lneas, capturan varios problemas comunes en el cdigo. Estos se utilizan para
diferentes cosas por lo que se deben usar siempre ambas.
use stric es usada para generar errores en caso de que encuentre lo que se considera
como programacin insegura y detiene el cdigo inmediatamente. Entre ellos tenemos :

Variables no inicializadas. (se deben de iniciar con my())


Referencias irreales
Palabras que no tienen comillas sin ser subrutinas o identificadores de archivos.
4

Por otro lado use warnings, es un control de errores , con una manejo mas personalizado
utilizando un control lxico.

-Sintaxis

bsica

Un programa o script en Pearl, consiste en uno o mas declaraciones. Estas declaraciones


son simplemente escritos en el script como cdigo de forma secuencial (lnea a lnea) que
van formado el cdigo del programa.

Las lneas de cdigo de perl finalizan con un ; :

1. print "Hello, world";


Los comentarios comienzan con un signo numeral # y finaliza donde termina la lnea :

1. # Este es un comentario
Los espacios en blanco no son relevantes :

1. print
2.
"Hola Mundo"
3.
;
Los espacios en blanco dentro de una cadena de caracteres encerrada en comillas si son
relevantes :

1. # this would print with a linebreak in the middle


2. print "Hola
3.
Mundo";
Las comillas dobles o simples, pueden ser usadas para encerrar cadenas literales

1. print "Hola, mundo";


2. print 'Hola, mundo';
5

Sin embargo, solo las dobles comillas pueden incorporar caracteres especiales como el salto de
lnea \n.

1. print "Hola, $name\n";#retorno carro al final de linea


2. print 'Hola, $name\n';#imprime $name\n literalmente

En los nmeros no son necesarias las comillas

1. print 42;

Se pueden utilizar parntesis para delimitar sentencias de forma optativa. En algunos


casos su uso es claramente una manera de organizar de mejor forma el cdigo.

1. print("Hola, mundo\n");
2. print "Hola, mundo\n";

- Tipos de Variables en Perl

Perl tiene principalmente tres tipos de variables: escalar, arreglos y hashes

- Escalares
Este es el tipo principal de variable en Perl, y es una cadena de caracteres o un
nmero que no necesita ser convertido como en otros lenguajes y los utilizar
indistintamente segn sean declarados. Esta variable numrica pueden ser enteros o
nmeros de coma flotante. Es necesario declarar la variable antes de utilizarla y se utiliza
al comienzo de la variable el carcter $
1. my $animal = "camel";
2. my $answer = 42;
Las variables escalares pueden ser usadas de varias maneras dentro del cdigo :

1. print $animal;
2. print "The animal is $animal\n";
3. print "The square of $answer is ", $answer * $answer, "\n";

- Arreglos

Un arreglo representa un listado de valores y se declara con un @ al principio del nombre


de la variable :

1. my @animals = ("camel", "llama", "owl");


2. my @numbers = (23, 42, 69);
3. my @mixed = ("camel", 42, 1.23);

Los datos dentro de un arreglo, son indexados desde el 0 y la ubicacin de los


elementos dentro del arreglo es por defecto de acuerdo a su orden de ingreso :

1. print $animals[0];
2. print $animals[1];

# prints "camel"
# prints "llama"

El argumento especial $#array de una variable permite mostrar el ltimo elemento del
arreglo :

1. print $mixed[$#mixed];

# last element, prints 1.23

Se pueden mostrar valores seleccionados de un arreglo, de la siguiente forma :


1. @animals[0,1]; # gives ("camel", "llama");
2. @animals[0..2]; # gives ("camel", "llama", "owl");
3. @animals[1..$#animals]; #gives all except the first element

- Hashes o arreglos sociativos

Este tipo de variables, se trabajan en pares de valores dentro de una matriz o


arreglo. Basicamente es una clave y un valor, asociados :
1. my %fruit_color = ("apple", "red", "banana", "yellow");
Se puede usar un espacio y el operador => para realizar la asignacin de forma mas clara
:
1.
2.
3.
4.

my %fruit_color = (
apple => "red",
banana => "yellow",
);

Se pueden tomar elementos del hash haciendo mencin a la asignacin asociada :

1. $fruit_color{"apple"};

# gives "red"

Se puede tomar una lista de claves y sus valores con keys() and values() :

1. my @fruits = keys %fruit_colors;


2. my @colors = values %fruit_colors;

- Estructuras de decisin

Perl tiene en su base, las mismas estructuras de desicin y control de bucles que otros
lenguajes como C, Pascal y otros, con algunos cambios forma en Perl 5.

if

1.
2.
3.
4.
5.
6.
7.

if ( condition ) {
...
} elsif ( other condition ) {
...
} else {
...
}

unless

Esta, es una estructura condicional simple propia del lenguaje y se ejecuta cuando la
condicin es falsa (similar a if (!condicion)).

1. unless ( condition ) {
2. ...
3. }

Perl, permite escribir las estructuras condicionales en una sola lnea con la forma de postcondicin :
1.
2.
3.
4.
5.
6.
7.
8.

# Esta es la forma tradicional


if ($zippy) {
print "Hola!";
}
# forma lineal con post condicion
print "Hola!" if $zippy;
print "We have no bananas" unless $bananas;

10

- Estructura de control de bucles

while

Este comando es un bucle que se repetir mientras se cumple, o no se cumpla la


condicin y su nomenclatura es :

1. while ( condition ) {
2. ...
3. }
El comando while, tambin tiene su versin de negacin propia de Perl
1. until ( condition ) {
2. ...
3. }
El comando while, tambin se puede escribir en forma lnea con post-condicin
1. print "LA LA LA\n" while 1; # loops forever

for

El comando for es una estructura repetitiva para crear bucles. Se basa en la


repeticin de N veces, definidas en las condiciones de la sintaxis del lenguaje mismo,
de una serie de acciones o instrucciones, hasta alcanzar el valor mximo de veces
definido.

1. for ($i = 0; $i <= $max; $i++) {


2.
...
3. }

11

ejemplo:
# Imprime los valores que toma $i, desde 0 hasta 99
for($i = 0; $i < 100; $i++){
print "$i\n";
}
# Cuando $i es igual a 100 la expresion '$i < 100' se
# evalua como falsa y el bucle termina

# Imprime una lista de nombres


@amigos = ('Julia', 'Luis', 'Mateo', 'Maria');
$na = @amigos;
for($i = 0; $i < $na; $i++)
{
print "$amigos[$i]\n";
}

12

-Foreach

Este comando se utiliza para recorrer los valores de las matrices. La matriz
o arreglo, es evaluada para producir una lista con sus valores, que actan
como contadores del blucle. De esta forma el bucle se ejecuta tantas veces
como elementos tenga el arreglo o matriz.

1. foreach (@array) {
2. print "Este elemento es $_\n";
3. }
4.
5. print $list[$_] foreach 0 .. $max;
6.
7. # no es necesario usar el valor por defecto $_
8. foreach my $key (keys %hash) {
9. print "The value of $key is $hash{$key}\n";
10.
}
ejemplo

# El ejemplo anterior con for escrito de forma ms concisa

@amigos = ('Julia', 'Luis', 'Mateo', 'Maria');


print "$_\n" foreach(@amigos);

@array = (23,35,'rosas','rojas',3,'5 numeros');


# Recorre todos los valores de la lista.
foreach(@array){
print $_; # Imprime el valore almacenado.
}

13

- Operadores de Perl

Aritmticos

1.
2.
3.
4.

+
*
/

Comparadores numricos

1.
2.
3.
4.
5.
6.

== igualdad
!= inequidad
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que

Comparaciones alfanumricas
1.
2.
3.
4.
5.
6.

Suma
resta
Multiplicacin
divisin

eq
ne
lt
gt
le
ge

igualdad
inequidad
menor que
mayor que
menor o igual que
mayor o igual que

Es importante sealar que la Perl utiliza distintos comparadores para valores


numricos como para valores alfanumricos por el hecho de que no existe una
diferenciacin de tipo para estas variables.

Comparadores lgicos

1. && y
2. || o
3. ! no
14

Miscelneos

1.
2.
3.
4.

= asignacin
. concatenacin de cadenas de caracteres
x multiplicacin de cadenas de caracteres
.. operador de rangos (crear una lista de nmeros )

Algunas combinaciones de operadores

1. $a += 1; # igual que $a = $a + 1
2. $a -= 1; # igual que $a = $a - 1
3. $a .= "\n"; # igual que $a = $a . "\n";

Es muy importante sealar que el lenguaje Perl contiene muchos otros comandos
y funciones integrados que no se explican en el presente trabajo, sin embargo su
utilizacin es de uso frecuente encontrando en la red mucha informacin sobre estos.
No obstante, los comandos presentados, son en especfico el gran grueso de
procesos con los cuales se trabaja constantemente en la creacin de programas en
Perl.

15

Utilizacin del lenguaje Perl en GNU-Linux

Para utilizar el lenguaje Perl en Linux, es necesario tener instalado el interprete de


Perl. Por lo general, en la actualidad cada distribucin de Linux tiene su propia fuente
repositorios para instalarse, sin embargo los sitios donde conseguir los que necesitamos
son los siguientes :

En www.perl.com

que es un buen sitio de referencia para empezar con Perl.


En el CPAN que el sitio ms completo de recursos de Perl
En ActiveState para Windows en sus diferentes versiones

Si bien en la gran mayora de las distribuciones de Linux encontraremos el


interprete instalado por defecto, es necesario tener claro la forma de instalacin
desde el cdigo fuente agrupado en un archivo tar.gz o tar.bz2
lo primero es descomprimir los archivos y debemos hacer lo siguiente :

para .tar.gz tenemos

tar xvfz perl_codigofuente.tar.gz

para .tar.bz2

tar xvfj perl_codigofuente.tar.bz2

16

y para sistemas un poco mas antiguos

tar xvfI perl_codigofuente.tar.bz2

Una vez descomprimido el archivo, es siempre recomendable leer los archivos


README e INSTALL, los cuales contiene siempre informacin relevante tanto para el
proceso de instalacin como para entender los alcances de del proceso mismo. Con los
archivo descomprimidos ejecutamos :

./configure

make

make install

Para editar y/o escribir nuestro cdigo en plataforma Linux, podemos utilizar
cualquier editor de texto, vi, editor de mc, nano, etc. No obstante lo anterior, es posible
ejecutar cdigo de Perl directamente desde la lnea de comandos de la siguiente forma :

$ perl -e 'print"Hola, Mundo!\n";'

esta instruccin devolver por la salida estndar

Hola, Mundo

esta es un forma muy sencilla de ejecutar un comando en Perl, pero en la mayora de los
casos se debiera usar un archivo guardado con la extensin .pl .

Por otra parte, se siempre importante tener claro la versin de Perl que estamos
utilizando, por temas de compatibilidades, para eso utilizamos el comando :

17

$ perl v

Lo que devolver algo parecido a esto :

Es importante no olvidar que si bien la informacin en lneas es bastante, siempre existe


la ayuda inmediata con el siguiente comando :

man perl

18

Ejemplos de aplicacin en Gnu-Linux

Existe en lnea, una enorme cantidad de informacin y soporte como se menciona


en este documento, aqu se muestran algunos ejemplos sencillos, con un breve
explicacin del cdigo.

Programa con variables

#!/usr/bin/perl
#Declaracin de una variable
my $hola;
my $numero;
#Asignacin de un valor
$hola="Hola Mundo\n";
$adios="adios\n";

#Impresin en la salida estandar


print $hola;
$numero=35;
print "Mira un nmero: $numero \n";
print "Y adios";

19

Programa con datos escalares

#!/usr/bin/perl
#Asigno valores a variables
my $uno=123.67;
my $dos;
my $suma;
$dos=123123.2334;
$suma=$uno;
$suma+=$dos;
#Escribimos resultados en pantalla
print "La suma de $uno y $dos es = $suma \n";

20

También podría gustarte