lunes, 22 de noviembre de 2010

Perl

Materia: Lenguajes de Programacion.

Lenguajes de programación

PERL

Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.

Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.

HISTORIA

Larry Wall comenzó a trabajar en Perl en 1987 mientras trabajaba como programador en Unisys y anunció la versión 1.0 en el grupo de noticias comp.sources.misc el 18 de diciembre de 1987. El lenguaje se expandió rápidamente en los siguientes años. Perl 2, publicado en 1988, aportó un mejor motor de expresiones regulares. Perl 3, publicado en 1989, añadió soporte para datos binarios.

NOMBRE

El nombre es descrito ocasionalmente como "PERL" (por Practical Extraction and Report Language - Lenguaje Práctico para la Extracción e Informe). Aunque esta expansión ha prevalecido en muchos manuales actuales, incluyendo la página de manual de Perl, es un retroacrónimo y oficialmente el nombre no quiere decir nada. La ortografía de PERL en mayúsculas es por eso usada como jerga para detectar a individuos ajenos a la comunidad. Sin embargo, se han sugerido varios retroacrónimos, incluyendo el cómico Pathologically Eclectic Rubbish Lister (Contabilizador de Basura Patológicamente Ecléctico).

Estructura del lenguaje

Programa ejemplo

En Perl, el programa canónico "Hola mundo" es:

#!/usr/bin/perl

print "¡Hola mundo!\n";

La primera línea contiene el shebang (par de caracteres que identifica el texto que sigue), que le indica al sistema operativo dónde encontrar el intérprete de Perl. La segunda imprime el string ¡Hola mundo! y un carácter de nueva línea.

El shebang es la forma normal para invocar al intérprete en los sistemas Unix. Los sistemas Windows pueden seguir utilizándolo o pueden asociar la extensión de archivo .pl con el intérprete Perl. Algunos editores de texto también usan la línea shebang como una pista sobre el modo de trabajo en que deben operar. Si el programa es ejecutado por perl y no invocado por el shell, la línea que empieza por el shebang es parseada para interpretar las opciones. En otro caso, es ignorada.

Tipos de datos

Perl tiene tres tipos de datos: escalares, listas y hashes:

• Un escalar es un solo valor; puede ser un número, un string (cadena de caracteres) o una referencia

• Una lista es una colección ordenada de escalares (una variable que almacena una lista se llama array)

• Un hash, o memoria asociativa, es un mapeo de strings a escalares; los strings se llaman claves y los escalares valores.

Todas las variables están precedidas por un sigil, que identifica el tipo de dato que es accedido (no el tipo de dato de la misma variable). Se puede usar el mismo nombre para variables de diferentes tipos, sin que tengan conflictos.

Datos escalares

Los datos escalares son las variables simples y pueden contener enteros, reales, cadenas o referencias. Este tipo de variables van precedido siempre por $.

En Perl las variables no se tienen porque declarar, aunque se declaran con my.

Las cadenas se encierran entre comillas dobles (" "), aunque también se pueden cerrar entre comillas simples (' '). Hay caracteres especiales (retorno de carro, tabulador, etc.) que como en muchos otros lenguajes se presentan mediante la barra de escape:

• \n retorno de carro a una nueva línea

• \b retorno a la posición anterior

• \a pitido

• \t tabulación (8 espacios)

• \\ el caracter \

• \" las comillas dobles (aunque si la cadena está delimita por comillas simples, no hace falta)

• \' las comillas simples (aunque si la cadena está delimita por comillas dobles, no hace falta)

Los operadores de comparación, son similares a los de C, pero depende si estamos comparando cadenas o datos numéricos. Los operadores para números y para cadenas son:

Comparación Números Cadenas

igual == eq

no igual != ne

menor que < lt

mayor que > gt

menor o igual que <= le

mayor o igual que >= ge

En Perl también tenemos los operadores de autoincremento (++)y autodecremento (--). Y además tenemos el operador potencia **(que es muy parecido aunque muy diferente)

Estructuras de control de flujo

Perl mantiene todas las estructuras de control de flujo que pueda tener cualquier otro lenguaje, pero con la peculariedad de que un bloque siempre debe ir entre llaves ({ }), aun cuando el bloque contenga un única sentencia.

Un resumen general de las estrucuturas de control de flujo es:

• if (EXPR) BLOQUE

• if (EXPR) BLOQUE else BLOQUE

• if (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE

• SENTENCIA if (EXPR);

• unless (EXPR) BLOQUE

• unless (EXPR) BLOQUE else BLOQUE

• unless (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE

• SENTENCIA unless (EXPR);

• while (EXPR) BLOQUE

• SENTENCIA while (EXPR);

• until (EXPR) BLOQUE

• SENTENCIA until (EXPR);

• do BLOQUE while (EXPR);

• do BLOQUE until (EXPR);

• for (EXPR;EXPR;EXPR) BLOQUE

• foreach $var (Array) BLOQUE

Donde EXPR es una expresión, BLOQUE es una sentecia o conjunto de estas encerrado entre llaves y SENTENCIA es una sola sentencia

ejemplo:
Aqui les dejo un programa que saca los numeros de fibonacci









Bibliografias:

http://es.wikipedia.org/wiki/Perl

http://flanagan.ugr.es/perl/index2.htm

1 comentario: