Programación II Ing. Diego J. Arcusin 9 – Perl II.

Slides:



Advertisements
Presentaciones similares
Introducción a la programación (Clase 2)
Advertisements

Métodos y parámetros.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Enlaces con variables en la URL en PHP Programación en Internet II.
M.C. Rafael A. García Rosas.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Access Bases de datos.
Programación II Ing. Diego J. Arcusin 3 – Uso del Shell.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Informática II Prof. Dr. Gustavo Patiño MJ
Mezclando PHP y HTML Programación en Internet II.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Programación por capas: Capa de Clases
Programación Orientada a Objetos en Java
MENU ARCHIVO.
Registro Único Tributario
Manipulación de caracteres e hileras de texto
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Las variables en PHP Programación en Internet II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Modificadores.
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
Ingeniero Anyelo Quintero
Semana 5 Subprogramas..
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Almacenar variables en cookies en PHP
Programación II Ing. Diego J. Arcusin 8 – Perl.
Switch en PHP Programación en Internet II. Switch en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa Elegir.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Colegio de Bachilleres Xochimilco Tepepan Plantel No. 13 Stone Chávez Mayra Fernanda Gabriela Pichardo Grupo: 308 Equipo: 22 1Stone Chávez Mayra Fernanda.
Colegio de Bachilleres Plantel 13 Xochimilco-Tepepan Integrantes: Karen Elizabeth González Monroy Elizabeth De Jesús Vergara Grupo:308.
Identificación con cookies y sesiones en PHP Programación en Internet II.
Copiando y pegando archivos enteros Programación en Internet II.
Hola mundo. 2 En Java para indicar el inicio y fin de un bloque de instrucciones utiliza las llaves { } es decir: { Inicio de instrucciones para la clase.
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Sistema de Comunicaciones Documentales
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
introducción al lenguaje
NOMBRES:OLIVARES ALFARO JOSE L. BONETTI ARON GRUPO:308.
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
Programación Orientada a Objetos
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
TEMA 9: DIAGRAMA DE CLASE EN UML
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
Ihr Logo PHP Parte 2 “php toma muchas sintaxis de lenguajes de alto nivel conocidos para poder trabajar”
Support.ebsco.com Búsqueda avanzada guiada de EBSCOhost Tutorial.
Práctica Profesional PHP.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
Programación en Visual Basic
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Introducción a programación web Martin Esses. Formularios HTML se utilizan para pasar datos a un servidor. Un formulario HTML puede contener elementos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Helpers en ASP.NET MVC3. Introducción Los helpers son una herramienta muy potente para generar nuestro propio código HTML dentro de las vistas. Los helpers.
Transcripción de la presentación:

Programación II Ing. Diego J. Arcusin 9 – Perl II

Namespaces El perl provee mecanismos para proteger las variables. La función package Permite la definición de namespaces. En un namespace cada una de las variables es única. De esta manera se pueden utilizar dos variables distintas con el mismo nombre, cada una de ellas en un Namespace diferente. El Namespace main es el namespace default por lo que todo programa perl tiene implicita la instrucción: package main; En realidad en perl no existe tal cosa La variable _PACKAGE_ forma parte de perl, y contiene el nombre del namespace actual Para más información: perldoc -f package

Ejemplo de namespaces #!/usr/bin/perl my $saludos = Desde cualquier lado: Saludos de "; # Namespace Ucema' package Ucema; $promedio = 8; print 'En namespace '.__PACKAGE__.', $promedio = ', $promedio, "\n"; print $saludos,__PACKAGE__,"\n"; # Namespace Uade' package Uade; $promedio = 5; print 'En namespace '.__PACKAGE__.', $promedio = ', $promedio, "\n"; print $saludos,__PACKAGE__,"\n"; # Namespace 'main' (default namespace) package main; $promedio = 7; print 'En namespace '.__PACKAGE__.', $promedio = ', $promedio, "\n"; print Promedio publico: ', $main::promedio, "\n"; print Promedio Ucema: ', $Ucema::promedio, "\n"; print Promedio Uade: ', $Uade::promedio, "\n"; print $saludos,__PACKAGE__,"\n";

Alcance de las variables Las variables declaradas con my son acccesibles dentro de un determinado alcance (scope), pero no fuera del mismo. El alcance de la variable está dado por el bloque actual donde se encuentra el código. El alcance puede ser un loop, una subrutina, o un programa completo.

Módulos Perl permite el desarrollo de módulos personalizados para ser utilizados en lugar de las subrutinas. La función use se utiliza para acceder a un módulo desde un programa. Un módulo es un archivo de texto con código perl qué suele terminar con la extensión.pm

Ejemplo de módulo M ó dulo Ucema.pm : # Namespace Ucema' package Ucema; $promedio = 8; my $costo = 500; 1; M ó dulo Uade.pm : # Namespace Uade' package Uade; $promedio = 5; my $costo = 300; 1;

Ejemplo de módulo (cont.) Programa programa.pl: #!/usr/bin/perl use strict; use Ucema; use Uade; my $promedio = 7; print 'Mi promedio: ', $promedio, "\n"; print Promedio de Ucema: ', $Ucema::promedio, "\n"; print Promedio de Uade: ', $Uade::promedio, "\n"; print Los costos de las Universidad fueron declarados con 'my':\n"; print '$Ucema::costo no es accesible desde aca', "\n"; print '$Uade::costo tampoco', "\n"; La linea use Ucema; busca el archivo de nombre Ucema con extensión.pm, y luego importa el namespace Ucema con todos los subrutinas y variables públicas que tenga este módulo. La función use indica éxito con True, por eso la última linea de un módulo tiene que evaluar a True, por esto todos los módulos terminan con 1;. La variable $costo está declarada con my (o sea privada). Esto quiere decir que solo está accesible dentro del scope del archivo Ucema.pm, y no desde programa.pl, mientras que $promedio está declarada como pública, y por lo tanto accesible desde programa.pl.

Otro ejemplo Módulo Trim.pm: # Trim.pm package Trim; sub ltrim { $string = shift; $string =~ s/^\s*//g; return $string; } sub rtrim { $string = shift; $string =~ s/\s*$//g; return $string; } sub trim { $string = shift; $string =~ s/^\s*(\S+)\s*$/$1/g; return $string; } 1;

programa2.pl: #!/usr/bin/perl use Trim; my $s = ' hola '; my $s2 = Trim::trim($s); my $s3 = Trim::ltrim($s); my $s4 = Trim::rtrim($s); print "$s\n"; print "$s2\n"; print "$s3\n"; print "$s4\n"; Otro ejemplo (cont.)

"The Comprehensive Perl Archive Network Es un directorio central donde se almacenan módulos y programas perl creados por terceras personas que integran operaciones habituales. Contiene un mecanismo de búsqueda junto con él directorio organizado en categorías específicas donde se pueden crear módulos prediseñados. Algunos módulos de CPAN: DBIDBDCGIMAIL HTMLNETFINDXML Y otros. CPAN

En Perl la terminología de Object-Oriented (OO) programming se aplica de la siguiente manera: Un objeto es una variable que pertenece a una clase. Métodos son funciones asociadas a objetos o clases. Propiedades de instancia son propiedades que afectan sólo al objeto. Propiedades de clase son propiedades que afectan a todos los objetos de la clase. Una clase es un Package, y normalmente un módulo, o sea un archivo.pm. El objeto (o variable) es una referencia a la que se le ha aplicado la función bless. Clases y Objetos

Clases vs. Librería: Similitudes y diferencias: Las dos se almacenan en un archivo.pm. Una clase es un conjunto de métodos (subrutinas), pero incluye un método normalmente (pero no necesariamente) llamado new(), que crea un objeto. A través de este método se puede acceder a los demás métodos. Además, un objeto cuenta con propiedades, que se pueden modificar a traves de métodos. Esto permite a un objeto llevar distintos estados durante la ejecución de un programa. Una libreria es un conjunto de funciones (subrutinas) con algo en común (por eso se almacenan en el mismo archivo), que se pueden ejecutar desde un programa, pero estas funciones no llevan un estado (como lo hace un objeto), solo devuelve uno o varios valores. Clases vs. Librerías

Un objeto en perl no es más que una referencia de la cuál se sabe a que clase pertenece. Una clase es un package que provee métodos para tratar con las referencias a objetos Un método es una simple subrutina que espera una referencia a un objeto como primer argumento En Perl un objeto se crea con la función bless enviando como argumento la referencia al objeto (ver perldoc -f bless por detalles). En teoría, la referencia puede referirse a cualquier tipo de variable, pero en general siempre se refiere a un hash vacío. Normalmente se crea un objeto a través de una función llamada new ( ) # Crear el objeto sub new { my $class = shift; return bless {}, $class; } Podemos llamar a new de dos formas: my $object = Some::Class->new(); o bien: my $object = new Some::Class; Un objeto en perl

Todas las subrutinas dentro de Some/Class.pm sirven como métodos, y aquellas subrutinas que modifican o devuelven valores del hash del objeto sirven como propiedades. Este ejemplo agrega un método y una propiedad al archivo Some/Class.pm : sub un_metodo { print "Hola!\n }; sub una_propiedad { my $object = shift; $object->{PROPIEDAD} = shift return $object->{PROPIEDAD}; } Métodos y Propiedades

Para acceder a los métodos y las propiedades desde un programa: #!/usr/bin/perl -w use strict; use Some::Class; my $object = Some::Class->new(); # Acceder a un metodo $object->un_metodo; # Acceder a una propiedad - siempre se debe hacer a traves de un metodo # Propiedad - set $object->una_propiedad(123); # Propiedad - get print $object->una_propiedad(),"\n"; Métodos y Propiedades (cont.)

Es importante resaltar que es posible acceder directamente el valor del hash (en este ejemplo $object->{PROPIEDAD} ) en vez de usar el método una_propiedad para hacerlo, pero no es una forma adecuada de programación. El método una_propiedad de Some::Class puede contener funcionalidad agregada que debe ser transparente al usuario de Some::Class. La documentación del módulo debe indicar que métodos se deben usar. Métodos y Propiedades (cont.)

Preguntas ?

1) Dado un archivo de Log de un Servidor Web con la siguiente estructura: Dirección IP | Fecha y Hora | URL Visitada | Navegador Utilizado Existe un registro para cada solicitud realizada al servidor. La Fecha y Hora tiene el siguiente formato: DD/MMM/YYYY:hh:mm:ss Ejemplo: 05/Dec/2005:10:16:05 Se solicita: Proveer la lista de todos los navegadores con los que se accedió al sitio y el porcentaje de utilización de cada uno (Cantidad de registros accedidos por cada navegador / cant, total de registros). Contar cuántas imágenes se accedieron en el mes de Noviembre del (Las imágenes son aquellas URLs que terminan en.gif,.jpg o.png) Armar una lista ordenada con todas las direcciones IP distintas que accedieron a la URL: Ejercicios

2.Hemos sido contratados para formar parte del Staff de Operaciones del Area de Sistemas de Editorial Libros lo más. Nuestro jefe, sabiendo acerca de nuestros conocimientos de UNIX y perl nos solicita: a)Para un proyecto de reingeniería del sistema de Facturación de la Editorial, desarrollar un módulo perl que contenga una clase denominada libro que contenga los siguientes métodos: New: Crea un nuevo libro. Para poder crear un nuevo objeto libro, este método deberá recibir el código de ISBN y el título del libro. Al crearse el libro toma el estado Sin Publicar, una cantidad en Stock de 0 unidades, y una cantidad de ventas totales en 0. Imprimir: Recibe como parámetro la cantidad de copias impresas del libro. Esta cantidad se suma al stock disponible. Además, cambia el estado del libro a Disponible. Venta: Recibe como parámetro la cantidad de copias vendidas del libro. Si la cantidad de copias es mayor al stock actual. Vuelve con un error. Si la cantidad de copias es menor o igual al stock actual, se disminuye la cantidad de copias en stock de acuerdo a la venta, y se incrementa un acumulador de ventas totales de acuerdo a la cantidad vendida. Si la cantidad en stock llega a cero, el estado pasa a ser Agotado. Estado: Retorna el Estado actual del libro. Stock: Retorna el Stock actual del libro. Ejercicios

b) Preparar un listado con los libros impresos en Argentina con los que cuenta la Editorial. Deberemos elaborar un programa perl que muestre todos los titulos por orden alfabético. Contamos con un archivo con los datos de los libros publicados por la editorial con el siguiente formato: ISBN DEL LIBRO|COD AUTOR|TITULO|CODIGO DE CONTROL Ejemplo de registros: | |Poda| | |Adiestramiento Canino| | |Rosas| … | |Feng Shui Soluciones Prácticas| Nota 1: No considerar aquellos libros cuyo código de control finalice en 99 ya que los códigos que terminan con este número indican que el mismo está agotado. Nota 2: Considerar sólo aquellos libros cuyo código de control comience con 54 ya que los códigos que comienzan con este número indican que el mismo fue publicado en Argentina. Ejercicios