UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES

TEMA PERL 2: ESTRUCTURAS O REGISTROS

En este TEMA PERL exploramos en perl la estructura mas comun de representacion de datos.

Variables simples o escalares pueden almacenar un datum de informacion y arreglos pueden almacenar conjuntos de ellos del mismo tipo y al mismo tiempo, estos dos mecanismos pueden manejar una gran variedad de situaciones pero a menudo se necesita trabajar sobre datos de diversos tipos en este caso ni variables escalares ni arreglos son adecuados.

Para resolver este problema perl provee de dos tipos de datos, el arreglo asociativo visto en la unidad de arreglos y tambien las llamadas estructuras.

Los elementos individuales de una variable estructura reciben el nombre de campos.

Ej:

struct alumno

nombre → campo1

direccion → campo2

edad → campo3

etc

EL FORMATO GENERAL DE UNA ESTRUCTURA O DECLARACION ES:

use Class::Struct EMPLEADO ⇒ [

nombre ⇒ '$',

clave ⇒ '$', ]

Observar que '$' indica una variable normal, pero se pueden usar cualquier otro tipo.

Recordar que tambien se tendran que crear (observar que realmente la 'estructura' es una clase y los programas que la usen deberan crear su propios objetos derivados de esa clase), para crear usar el siguiente formato.

my $empleado = new EMPLEADO(nombre ⇒ 'pepe', clave ⇒ 999) ;

Observar que se esta creando el objeto empleado (EMPLEADO es la clase, empleado es el objeto).

Es el registro completo quien se declara y crea en cualquiera de los lugares adecuados para ello.

Son los campos del registro a quienes se les va a asignar, inicializar, capturar, etc y de esta manera a los campos se les considera como variables normales.

Para indicar a perl durante cualquier proceso que la variable a utilizar es un campo de un objeto estructura se utiliza el siguiente formato.

Nomregistro→nombredelcampo

Para el caso de arreglos asociativos se crean con:

$alumno={nombre⇒””,edad⇒19};

y se procesan con:

$alumno→{nombre}, $alumno→{edad}

Ejemplo.

</code>

Prog20.pl

#! /usr/bin/perl -w

# usando modulo o libreria CGI

use CGI;

# creando el OBJETO de tipo CGI

$q = new CGI;

# creando clase estructura

use Class::Struct EMPLEADO ⇒ [

nombre ⇒ '$',

clave ⇒ '$', ] ;

# mandando servidor los encabezados de la pagina html

print $q→header;

print $q→start_html();

# creando una form o ventana

print $q→startform();

# creando arreglo asociativo

$alumno={nombre⇒””,edad⇒19};

# capturando en arreglo

$alumno→{nombre} = $q→param('ALNOM');

# creando y cargando estructura

my $temp = $q→param('EMNOM');

my $empleado = new EMPLEADO(nombre ⇒ $temp, clave ⇒ 999) ;

print $q→b(“NOMBRE ALUMNO :”);

print $q→textfield('ALNOM', , 5); print $q→br(); print $q→b(“NOMBRE EMPLEADO :”); print $q→textfield('EMNOM', , 5);

print $q→br();

# imprimiendo alumno y empleado

print $alumno→{nombre}, $alumno→{edad};

print $q→br();

print $empleado→nombre, $empleado→clave ;

print $q→br();

# creando un submit button

print $q→submit('OK');

# cerrando la forma

print $q→endform();

print $q→hr();

#cerrando html

print $q→end_html;

</code>

corrida:

image259.jpg

Las operaciones mas elementales con los campos de una estructura incluyen captura e inicializacion.

TAREAS PROGRAMACION PERL : (usar clases y arreglos asociativos)

TAREA Crear un registro de alumno con 3 califaciones.

TAREA Declarar un registro de empleado capturar y desplegar un numero indeterminado de veces.

TAREA Capturar un registro local de un producto en el principal, mandarlo como parametro a un procedimiento y desplegarlo.

TAREA Capturar un registro local en el principal, mandar el sueldo a una funcion que le aumente el 25% y desplegar en el principal.

TAREA Capturar en principal un registro local de cuentas por cobrar, mandar a un procedimiento e imprimir un aviso si el saldo esta atrasado.

Politica de Privacidad