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:
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.