You are on page 1of 7

Flujo de programas y subrutinas Fundamentos de organizacin (capacidad de crear segmentos lgicos y funcionales en los programas) Funciones secciones de cdigo

reutilizable en perl se conocen como subrutinas Bibliotecas y archivos externos que contiene mltiples funciones y o propiedades a menudo relacionadas con tpicos o funcionalidades en perl se llaman paquetes Objetos elementos reutilizables que asumen ciertas caractersticas y potencialmente realizan tareas cumplen otras funciones Porque se debe organizar el cdigo flujo lgico del programa flujo funcional el programa buen programa intermedio entre los dos Buen comentario y mal comentario Subrutinas tarea realizada mltiples veces reutilizacin del cdigo Mdulos y paquetes sus rutinas con un tema en comn para ser reutilizables y exportables unin de mdulos paquetes Segmentos agrupacin de cdigo o funcional o lgico

{{{{ Subrutinas = mtodos Declaracin sub NOMBRE por convencin no se usa en maysculas para porque le dicen al intrprete de perl que llame a un mdulo a sub del sistema. sub Nombre ( cdigo; ) local() y my() para trabajar en la sub hacer ejemplo llamada &Nombre;

Argumentos Distinto a otros lenguajes no listan en la definicin parmetros para ser pasados se almacenan en un arreglo accesible a la rutina cuando se llama. $_[0]; o $_[1]; }}} hacer script y probar Ejemplo print "\n Ingrese el primer nmero"; $uno=<STDIN>; print "\n Ingrese el segundo nmero"; $dos=<STDIN>; $res= &Suma($uno,$dos); print"\n La suma de los dos nmero es $res "\n");

sub Suma{ $sum= $_[0] + $_[1]; return $sum } Hablar de return Subrutinas predefinidas sub predefinidas del sistema Ejemplo: HACER Y PROBAR print "Hola mundo"; &BEGIN; Sub BEGIN { print "\n Bienvenido al programa"; print "\n Primero Sistemas"; print "\n Perl"; } Se ejecuta primero cada vez que se usa el programa.

Ejemplos de Sub AUTOLOAD Carga cuando se hace una llamada a una rutina inexistente. BEGIN Se ejecuta antes de todo END Se ejecuta antes de que se cierre el script. local() para declarar variables que solo funcionen en la sub pueden tener el mismo nombre que una global. Sub llamadas con una sub heredan el valor de la primera sub local $var1=0; my() para declarar variables solo dentro del sub no heredan cuando son anidadas. MANEJO DE ARCHIVOS. open(descriptor de archivo, nombre de archivo); descriptor de archivo es la ruta donde est el archivo cuando no se especifica se interpreta que est en el directorio donde se est trabajando. print "Programa ejemplo apertura de archivos"; open(EXAMPLE, "example.txt")||die("No se pudo abrir el archivo example"\n$!); open(EXAMPLE1, "nofile.txt")||warn("No se pudo abrir el archivo"\n$!); die mensaje de error y se cierra warn solo mensaje de error con ruta open(EXAMPLE, 'd:\perl\book\test\example.txt')||die("No se pudo abrir el archivo example"\n$!); Se puede abrir en 3 modos distintos lectura, escritura y adicin. En lectura solo lee, escritura borra todo el contenido anterior y adicin no borra open(EXAMPLE, ">D:/perl/book/test/example.txt"); adicin open(EXAMPLE, ">>D:\\perl\\book\\test\\example.txt"); cerrar close(EXAMPLE); $texto=<EXAMPLE> solo muestra la primera linea

para mostrar todas

open(EXAMPLE, "example.txt")||die("No se pudo abrir el archivo example"\n$!); $texto=<EXAMPLE>;


while($text)^ print "$texto \n"; $texto=<EXAMPLE>; } O se puede almacenar en un arreglo open(EXAMPLE, "example.txt")||die("No se pudo abrir el archivo example"\n$!); @texto = <EXAMPLE>; print (@texto); Instruccin read; read(descriptor de archivo, variable, longitud, saltar bytes); longitud cuanto se desea leer en bytes saltar lee a partir de el numero que se ingrese ej

open(EXAMPLE, "example.txt")||die("No se pudo abrir el archivo example"\n$!);


read(EXAMPLE, $texto, 10); print "$texto"; read(EXAMPLE, $texto, 10, 10); print "$texto"; funciones seek (descriptor de archivo, longitud, desde donde); Lee desde una cantidad de bytes una cantidad de bytes. tell (descriptor de archivo); Devuelve la posicin desde donde inicia la lectura. Crear archivos. (probar sin con open y solo con un nombre no existente se crea un archivo) agregar lneas a un archivo

open(EXAMPLE, ">example.txt")||die("No se pudo abrir el archivo example"\n$!);


print EXAMPLE "Esta es la primera lnea \n"; print EXAMPLE "Esta es la segunda lnea \n"; close(EXAMPLE); ejemplo para pasar de un archivo a otro.

open(EXAMPLE, ">example.txt")||die("No se pudo abrir el archivo example"\n$!); open(INFORMATION, "information.txt")||die("No se pudo abrir el archivo information"\n$!);
$copy=<INFORMATION>; while($copy){ print EXAMPLE ($copy); $copy=<INFORMATION>; } close (EXAMPLE); close (INFORMATION); Renombrar un archivo archivo rename ("output.txt","oldout.txt"); si se especifica otra ruta se mueve el

Eliminar un archivo unlink("output.txt"); Cambiar permisos de un archivo. chmod(0744, "output.txt"); Opciones para comprobar datos de un archivo escanear pgina 233 y 234 e investigar que es cada uno -x archivo devuelve un valor verdadero o falso Acceso a directorios Crear un nuevo directorio mkdir (Nombre de directorio, modo); Cambiar de directorio chdir(Nombre o ruta de directorio); Asociar un directorio con un descriptor opendir(Descriptor de directorio, directorio o ruta); Siempre al terminar de usarlo se debe cerrarlo con closedir(Descriptor de directorio); Leer un directorio readdir(Descriptor de directorio); Retorna el primer archivo o subdirectorio de el descriptor.

Bsqueda de archivos telldir(descriptor de directorio); devuelve la localizacin actual. seekdir(descriptor de directorio, $localizacion_actual); establece un punto de partida de la lista de directorio a cualquier lugar en el ejemplo se almacena en locali la posicin actual rewinddir(descriptor de directorio); restablece al inicio la posicin actual del descriptor rmdir(nombre de directorio); elimina directorios no es necesario que este abierto.

PAQUETES Y MDULOS Paquete es un conjunto de funciones agrupadas dentro de un solo archivo (tambin llamado biblioteca y que termina con una extensin .pl o a veces .pm) Se puede implementar con la palabra require "paquete.pl"; Mdulo similar al paquete a excepcin de que est diseado para ser reutilizable () Constructor y destructor BEGIN y END. Carga de bibliotecas Use() permite importar desde el mdulo semnticas dentro del paquete actual en el momento de la compilacin. use mymodule.pm qw(sub1 sub2 sub3); qw son los items que se desea entre comillas y separados activados por un espacio en blanco use mymodule.pm; 5.6.0 qw()sub1 sub2 sub3); Use 5.6.0 require() solicita la semntica especificada por expresin para que sea incluida en el programa cuando se llame para su ejecucin apropiada no es muy usado porque no carga al arrancarse el programa. require 5.6.0; require "MyDir::MyModule"; no() especifica que funciones no se desea usar no Modulo LISTA

package MyPackage; Define el espacio de nombres por asignar a las subrutinas en la biblioteca de tal modo que los usuario de las subrutinas puedan emplearlas apropiadamente. Lo define para el interprete de perl como una biblioteca Mdulo Exporter package Module; require Exporter; @ISA = qw(EXPORTER); @EXPORT = qw(...); arreglo de smbolos que desea exportar por escogencia predeterminada cuando el usuario cargue la biblioteca mediante use() tiene acceso a estas subrutinas. @EXPORT_OK = qw(....); similar a @EXPORT pero es una lista de smbolos para exportar a solicitud del usuario del mdulo. pero no estn disponibles automticamente a menos que se solicite especficamente. @EXPORT_TAGS = (tag *....+); define los nombres para conjuntos de smbolos, se puede agrupar subrutinas que se desea exportar juntas bajo un nombre especfico %EXPORT_TAGS = (header *eq (sub1 sub2 sub3), body *qw(sub4 sub5 sub6)++ ); Import funcin que contiene todos los items importables necesarios para la biblioteca sub import(){ Las directivas de exportacin van aqu }