PDF de programación - perl intro

Imágen de pdf perl intro

perl intrográfica de visualizaciones

Actualizado el 27 de Agosto del 2018 (Publicado el 2 de Abril del 2018)
244 visualizaciones desde el 2 de Abril del 2018
88,5 KB
10 paginas
Creado hace 16a (14/10/2003)
2
2

2

3
3
3
3
3
4
4
5
5
7
8
8
9
9
10

Índice
1. PERL, ”Practical Extraction and Report Language”

1.1.

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. El interprete de Perl

3. Sintaxis

3.1. Estructura del Programa . . . . . . . . . . . . . . . . . . . . . . .
3.2. Tipos de Variables . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Tipo Escalar
. . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Tipo Hash . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Tipos y Contextos
3.4. Referencias
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Alcance de las Declaraciones . . . . . . . . . . . . . . . . . . . . .
3.6.1.
local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.2. my . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7. Expresiones Condicionales . . . . . . . . . . . . . . . . . . . . . .
3.8. Ciclos Iterativos
. . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9. Expresiones alternativas . . . . . . . . . . . . . . . . . . . . . . .

1

1. PERL, ”Practical Extraction and Report Language”

1.1.

Introducción

Perl es una herramienta, en general, común entre desarrolladores de sitios

Web, y administradores de sistemas.

Posee una sintaxis muy clara, en cuanto a estructuras de control se refiere.
No obstante, por el hecho de ser un lenguaje muy rico, hay una gran cantidad
de cosas que aprender acerca de las facilidades que ofrece. Esto no implica que
hay que ser un erudito en sintaxis de Perl para utilizarlo, se puede empezar a
programar bajo este lenguaje de scripting con conocimientos básicos, y algunas
referencias. En general, a medida que se avance sobre la dificultad del proble-
ma, se irán necesitando construcciones más complejas, que paradojicamente,
con Perl se simplifican bastante respecto de otros lenguajes.

Originalmente diseñado para procesar archivos de texto, se volvio un lengua-
je de proposito general, con distintos entornos de desarrollo, debuguers, bibliote-
cas, etc. al punto que uno puede desarrollar aplicaciones que van de las simples
(o muy complicadas) tareas de administración de servidores, herramientas de
Networking, aplicaciones via Web mediante el uso del módulo CGI.pm, hasta
programas con interfaces gráficas, gracias al módulo Perl/Tk.

2. El interprete de Perl

Para que un script que hayamos hecho, pueda ejecutarse con exito, debe pa-
sar por el interprete del lenguaje, de otra manera, no sera posible su ejecución.

En general, todo script de Perl lleva, antes que cualquier otra instrucción la
línea #!/usr/bin/perl. Esta, le indica al kernel que el script debe ser inter-
pretado por el Interprete de Perl. La ruta al interprete de Perl, variara según
el Sistema Operativo, y tipo de distribución para los sistemas GNU/Linux. Es
posible además, especificar opciones que modificaran el comportamiento del in-
terprete, haciendo explicitos ciertos warnings, habilitar el debuguer, etc. Dentro
de las más utilizadas (personalmente), podemos encontrar:

-c Solamente verifica la sintaxis, no ejecuta ninguna instrucción

-d Habilita el Debuguer de Perl

-e command Es utilizado para ingresar una o más instrucciones de codigo en la línea

de comandos

-v Imprime la versión de Perl que se esta utilizando

-V Configuración de Perl, y el array @INC

-w Imprime advertencias

2

3. Sintaxis

3.1. Estructura del Programa

Escencialmente, toda instrucción debe terminar con un punto y coma (;),

exeptuando los comentarios y las estructuras de control de flujo.

En cuanto a las declaraciones, solamente las funciones (más conocidas en
el ambiente como subrutinas) deben ser declaradas (en realidad tambien los
formatos de reporte, cosa que escapa al curso), el resto de las variables son ini-
cializadas a NULL o 0, según el contexto, a menos que sean definidas en forma
explicita por algun tipo de asignación.

Los comentarios se inician con el signo numeral (#), y abarcan desde su

posición hasta el final de línea.

3.2. Tipos de Variables

En general, en los lenguaje de scripting, no es necesario definir el tipo de
una variable, desde el punto de vista de si son de tipo char, int, float, etc, sino
que estan fijados por el contexto de la misma.

En Perl, existen básicamente tres tipos de dato, que son los escalares,

arrays y hashes.

3.2.1. Tipo Escalar

Están precedidos por el signo $. Son escencialmente, variables, y pueden te-
ner un valor numérico, de cadena o referencia (un escalar que apunta a otra
porción de información, de cualquier tipo - si, punteros -).

Si un string es asignado a una variable de tipo escalar, cuando por el contexto
se esperaba un número, Perl se encarga de realizar la conversión siguiendo una
serie de reglas intuitivas. Para asignar un valor a una variable de tipo escalar,
simplemente podemos hacer:

$variable = 1;

3.2.2. Tipo Array

Precedidos por el signo @, son listas de escalares ordenadas, a las cuales se
puede acceder por un indice entero, el cual comienza en el 0. Definimos una lista
de la siguiente forma:

@array = ("offset 1", 2, "1e3", 2.34);

Para hacer referencia a alguno de los elementos dentro del array, simplemente
se antepone el signo $ (ya que un array es una lista ordenada de escalares)
seguido por el nombre del array, y finalmente entre corchetes ([]) el offset, o
posición.

3

print("$array[2]"); # Imprime "1e3"

3.2.3. Tipo Hash

Un hash es un array asociativo, más exactamente, una lista no ordenada
de pares de llaves (keys), y valores(values). En Perl, estan precedidos por el
signo % cuando son definidos en forma general. Para definir un hash, la sintaxis
es la siguiente:

%hash = ("Nombre",

"Luis",
"Apellido",
"Rojas",
"Color Preferid", "Azul");

De esta forma, se asignan de a pares los valores key/value, con lo que ten-
driamos un hash don tres posiciones. Aunque esta notación es valida, suele ser
mucho más intuitiva la siguiente:

%hash = ("Nombre"

=> "Luis",
"Apellido"
=> "Rojas",
"Color Preferid" => "Azul");

De esta forma, se deja explicitamente marcado cual el valor del identificador
(y viceversa). Para referirse a un elemento, anteponemos el signo $ (porque otra
vez, es una lista asociativa, y recuerden que los arrays, son listas de escalares),
seguido por el nombre de hash, y finalmente, entre llaves ({}) y comillas, el
identificador.

print($hash{’Nombre’}); # Imprime "Apellido"

3.3. Tipos y Contextos

Toda operación invocada en un script de Perl, es evaluada en un contexto
especifico. Existen dos tipos de contexto, el escalar y el de lista. Los operadores
pueden identificar el contexto en el cual se realiza una operación, y actuar en
función de ello. Por ejemplo, la función localtime() devuelve un array de nueve
elementos en un contexto de lista:

# Devuelve los valores
# ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
@actual_time = localtime();
Pero en un contexto escalar, devuelve la fecha actual, en formato de string

# Devuelve "Tue Jul 15 02:28:16 2003"
$actual = localtime();
Otro ejemplo de contextos, podria ser

# $num posee la cantidad de elementos de @array
$num = @array;

# $num posee el indice del último elemento de @array
# (uno menos que la cantidad total)
$num = $#array;
Esta sintaxis, es util para conocer el número de elemntos disponibles en el

array @array.

4

3.4. Referencias

Una referencia en Perl, es fundamentalmente un tipo de dato que apun-
ta a una porción de información o codigo (simplemente, un puntero). Como es
de suponer, contiene la dirección de la información, así como el tipo de la última.

Es básicamente un escalar, y puede utilizarse en cualquier lugar en donde

puede utilizarse este, como elemento de un array o hash (no como índice).

La creación de referencias es muy simple, solamente se antepone el caracter

al tipo al cual se quiere referenciar. Ejemplos de esto, son:

$a = "esto va a ser una referencia";
@array = ("elemento1", 5, ""último elemento);
%hash

=> "Emiliano",

= ("Nombre"

"Apellido" => "Castagnari");

sub foo

{ print("Se paso el valor $_[0]\n"); }

$ref_a = \$a;
$ref_array = \@array;
$ref_hash
$ref_sub

= \%hash;
= \&foo;

Para desreferenciar(esto es, obtener la información) una variable, existen

unos cuantos metodos:

# Asigna el string a $a;
$$ref_a = "nuevo contenido";

# Los siguientes métodos son válidos para arrays:
= "posición 1";
$$ref_array[1]
$ref_array->[1]
= "posición 1";
${$ref_array[1]} = "posición 1";

# Los mismos métodos son válidos para hashes:
$$ref_hash{’Nombre’}
$ref_hash->{’Nombre’} = "Margarita";
${$ref_hash}{’Nombre’} = "Martin";

= "Maximiliano";

# Desreferencia funciones:
&$ref_foo("Parámetro");
$ref_foo->("Parámetro");
&{$ref_foo}("Parámetro");

3.5. Funciones

Las funciones, más conocidas como Subrutinas en el ambito de Perl, son uno
de las dos instrucciones que necesitan declararse. A diferencia de los lenguajes

5

de bajo nivel, al declarar una subrutina en Perl, no es necesario especificar ni el
tipo de valor y cantidad de parámetros que esta recibira, ni los que devuelve, o
bien si no se devuelve nada. La forma de hacerlo, es la siguiente:

sub foo

{ codigo }

sub foo(prototipo)

{ codigo }

Para llamar a la subrutina que hemos creado, simplemente hacemos:

foo argumentos;
foo(argumentos);

Las diferencias entre la llamada a una subrutina con o sin paréntesis, reside
en el lugar en donde fue definida la misma. Si hacemos referencia a la última,
antes de que esta halla sido declarada, debemos hacerlo con los paréntesis, de
lo contrario se producira un error. Analogamente, si la subrutina fue definida
líneas arriba de la primera llamada a ella, podra hacerse sin los paréntesis.

La forma de recibir y asignar los parámetros pasados a la subrutina, es
mediante la utilización del array es
  • Links de descarga
http://lwp-l.com/pdf10111

Comentarios de: perl intro (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad