SlideShare una empresa de Scribd logo
1 de 63
UNIVERSIDAD TECNOLÓGICADE TECAMACHALCO Programación de Aplicaciones José Alberto Rojas Aragón Presenta:  González Limón José Luis Rodríguez Navor María Araceli
¿ QUE ES PERL? PERL significa PracticalExtraction and ReportLanguage , algo así como lenguaje práctico de extracción y de informes, fue creado  por Larry Wall; La primera versión sale en el año de 1987.  Es un lenguaje interpretado que tiene varias utilidades, pero está principalmente orientado a la búsqueda, extracción y el  formateado de ficheros de tipo texto, También es muy usado para manejo y gestión de procesos ( estado de procesos , conteo y extracción de parámetros característicos, etc...)
Es una combinación de las características de los lenguajes más usados por los programadores de sistemas, como son los shell del sistema operativo UNIX, la utilidad ( que incluye un lenguaje interpretado propio) awk para formateo y tratamiento de texto e incluso características de Pascal, aunque su potencia se basa en la similitud con las mejores características del lenguaje estructurado C. En general cualquier utilidad que se necesite realizar en sh, awk, o sed, se puede implementar de una manera mas potente y sencilla mediante el lenguaje PERL.
Algunas de las ventajas del uso del lenguaje PERL son las siguientes: · Construcción de pequeños programas que pueden ser usados como filtros para obtener información de ficheros, realizar búsquedas, ... · Se puede utilizar en varios entornos, como puede ser Windows 95, OS/2, ..., sin alizar cambios de código, siendo únicamente necesario la introducción del intérprete PERL correspondiente a cada sistema operativo. · También es uno de los lenguajes mas utilizados en la programación de CGI scripts, que son guiones o scripts que utilizan el interface CGI (Common Gateway Interface), para intercambio de información entre aplicaciones externas y servicios de información. Como ejemplo de ello tenemos los programas de búsqueda usados por el browser Netscape.
PERL es un lenguaje interpretado, aunque en realidad, el intérprete de PERL, como todos los intérpretes modernos, compila los programas antes de ejecutarlos. Por eso se habla de scripts, y no de programas, concepto referido principalmente a programas compilados al lenguaje máquina nativo del ordenador y sistema operativo en el que se ejecuta.
PERL es un lenguaje de programación que busca antes que nada el facilitar laelaboraciónde tareas comunes en sistemas tipo UNIX, donde tradicionalmente las tareas de administración y proceso de datos se realiza con herramientas muy rudimentarias y por demás hostiles al usuario o administrador. Pero que se aplican sobre grandes cantidades de información (por lo regular texto) por lo que se requiere que sean de alto rendimiento.
Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos los sistemas operativos: DOS (por ejemplo, la última versión, OpenDos) Windows NT, Amiga... Los scripts son compatibles entre las diversas plataformas, de forma que es un verdadero lenguaje multiplataforma. Muchos fabricantes lo incluyen en sus versiones de UNIX; también el Linux lo incluye.
ALGUNAS CONSIDERACIONES DE PERL PERL no establece ninguna filosofía de programación (de hecho, no se puede decir que sea orientado a objetos, modular o estructurado aun cuando soporta directamente todos estos paradigmas de programación)   Los objetivos que se tuvieron en cuenta al diseñar la sintáxis de PERL fueron la facilidad de aprendizaje y de uso y la claridad de código, las cuales, considero que son necesarias (aunque pueden escribirse  programas en PERL complejos e inteligibles si así se desea).
Por si fuese poco, PERL no es ni un compilador ni un intérprete, ya que está en un punto intermedio. Cuando mandamos a ejecutar un programa en PERL, se compila el código fuente a un código intermedio en memoria, se optimiza (como si fuésemos a elaborar un programa ejecutable) pero es ejecutado por un motor, como si se tratase de un intérprete. El resultado final, es que utilizamos algo que se comporta como un intérprete pero que tiene un rendimiento comparativo al de programas compilados.  Sin embargo, ya existen compiladores de PERL con la versión 5.
En fin, PERL no nos obliga a nada, pero como es lógico hay ciertas reglas querecomiendo seguir para facilitar nuestro trabajo: Claridad En la mecánica de programación actual, los programas deben de ser entendibles por la persona que nos suceda en tareas de mantenimiento, de lo contrario perjudicamos tanto a nuestros compañeros de trabajo como a nuestra propia libertad para progresar y mantenernos libres de preocupaciones.
Nombres de variables Es conveniente dar la máxima claridad a los nombres de las variables sin hacerlos demasiado grandes, el nombre de los contadores y variables que guardan valores concernientes a un pequeño segmento de código por lo regular son de un par de letras (c1, c2, ... cx para los contadores, s1, s2, etc para cadenas de entrada etc.) mientras que las variables que afectan a diversos segmentos (a modo de regla, que tienen su definición en una pantalla distinta a donde se usan) tienen nombres explicativos que conviene que no excedan los 12 caracteres. Además, los nombres de archivos se usan con mayúsculas (ARCHENT, ARCHSAL, etc) y las clases tienen su primera letra mayúscula.
Indentificación Una costumbre ya clásica de la programación, en lo personal, y a lo largo de los distintos programas, es tabular el código dos espacios hacia adelante al abrir cada bloque, y terminar la tabulación al terminar el bloque, de modo que las llaves de apertura y cierre quedan a la vista y en la misma columna, solas en sus renglones (esto incrementa algo el numero de líneas, pero facilita sobremanera la búsqueda y corrección de los diversos bloques de control). Sencillez Es cómodo en ocasiones el comprimir una serie de instrucciones en una sola línea, queda al criterio decidir cuando se gana en claridad con un código mas o menos extenso, pero no debe titubearse en comentar el código que sea complejo.
Bases de datos en PERL Lo más fácil es usar el módulo DBI (que, como todos los demás, está en el CPAN), con un driver específico para el gestor de bases de datos, o si hay ninguno específico, y la base de datos está accesible usando ODBC, puede utilizarse con ODBC. En Windows hay un módulo alternativo, específico para ODBC, denominado Win32::ODBC. Con cualquiera de estos dos módulos, se puede usar con cualquier sistema de gestión de bases de datos. En Linux y UNIX, se puede usar con MySQL o MiniSQL, o Postgres. Por último, en Windows se puede usar también Microsoft SQL Server combinado con ODBC. Eso sí, como es inherente a las conexiones ODBC, es una forma menos ágil de gestionar una base de datos.
Tipo de datos  En perl
Datos escalares Los datos escalares son las variables simples y pueden contener enteros, reales, cadenas o referencias. Este tipo de variables van precedido siempre por $. Esta es una de las mayores diferencias con lenguajes como el C y es que a cualquier variable escalar se le antepone dicho signo ($). La forma de nombrar las variables también es similar, se puede usar letras números y _ empezando siempre por una letra.  En Perl las variables no se tienen porque declarar, aunque se declaran con my. Además la interpretación del tipo de variable se hace en función del contenido, aunque todas la variables numéricas internamente se tratan como reales.
Programa con variables
Como podemos ver en el anterior ejemplo las cadenas se encierran entre comillas dobles (" "), aunque también se pueden cerrar entre comillas simples (' '). Hay caracteres especiales (retorno de carro, tabulador, etc.) que como en muchos otros lenguajes se presentan mediante la barra de escape:         retorno de carro a una nueva línea         retorno a la posición anterior         pitido          tabulación (8 espacios)        el caracter  quot;       las comillas dobles (aunque si la cadena está delimita por          comillas simples, no hace  falta) apos;        las comillas simples (aunque si la cadena está delimita por          comillas dobles, no hace  falta)
Operadores de datos escalares El operador de asignación se utiliza, igual que en C, el símbolo =, como se puede observar en el primer ejemplo de la página. También se pueden mezclar operadores aritméticos junto con la asignación.  Asignación y operadores aritméticos:
Los operadores de comparación, son similares a los de C, pero depende si estamos comparando cadenas o datos numéricos. Los operadores para números y para cadenas son:  En Perl también tenemos los operadores de autoincremento (++) y autodecremento (--).  Y además tenemos el operador potencia **(que es muy parecido aunque muy diferente)
Autoincremento y potencia:
Concatenar y chop Para concatenar cadenas tenemos el operador punto (.) y la función chop para quitar el último carácter a una cadena.
Arrays Un Array en Perl es como los de C, pero con la diferencia de que van precedidos del símbolo arroba @. (como las variables de $). La forma de acceder a ellos es mediante la indexación, contando desde cero. En Perl no nos tenemos que preocupar de reservar la memoria ni gestionarla de ninguna forma. Hay que tener en cuenta que cuando se accede a un elemento de un array, ya no se está haciendo referencia a un array sino a un dato escalar, por lo que debe ir precedido del símbolo $. Vamos a verlo con un ejemplo:
Ejemplo de Arrays:  Para sacar/insertar elementos se pueden usar las funciones pop y push. Que sacan o insertan, respectivamente, un elemento al final, es decir, tratan el array como una pila. También podemos utilizar shift y unshift para sacar o insertar, respectivamente, un elemnto del principio del array.  Para ver el tamaño (número de elementos) de un array se utiliza el símbolo de sostenido (#) entre el símbolo $ y el nombre del array, es decir, con $#array. Este tamaño nos lo da contando desde 0 o, lo que es lo mismo, realmente nos da el último índice que existe en el array. Si el array no tuviese ningún elemento, su tamaño sería -1.
Ejemplo de pop/push, shift/ unshift, y tamaño del array:
Arrays asociativos Un array asociativo en Perl o tabla hash (como también se le denomina) es un array donde los elementos son referenciados mediante claves en vez de una posición. Para los array asociativos se utiliza el símbolo %. Al igual que sucede con los arrays normales, cuando se accede a un elemento de un array asociativo se debe referenciar como un escalar con el símbolo $. Además la indexación (orden de los datos) por clave no se hace utilizando los corchetes, sino que se utilizan las llaves ({   }).
Estructuras de control de flujo Perl mantiene todas las estructuras de control de flujo que pueda tener cualquier otro lenguaje, pero con la peculiaridad de que un bloque siempre debe ir entre llaves ({   }), aun cuando el bloque contenga un única sentencia.  Un resumen general de las estructuras de control de flujo es:  if (EXPR) BLOQUE if (EXPR) BLOQUE elseBLOQUE if (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE SENTENCIA if (EXPR); unless (EXPR) BLOQUE unless (EXPR) BLOQUE else BLOQUE unless (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE SENTENCIA unless (EXPR); while (EXPR) BLOQUE SENTENCIA while (EXPR); until (EXPR) BLOQUE SENTENCIA until (EXPR); do BLOQUE while (EXPR); do BLOQUE until (EXPR); for (EXPR;EXPR;EXPR) BLOQUE foreach $var(Array) BLOQUE Donde EXPR es una expresión, BLOQUE es una sentencia o conjunto de estas encerrado entre llaves y SENTENCIA es una sola sentencia
Ejemplos de estructuras de control:
Funciones
Uso de Clases y Objetos Hasta ahora no lo hemos visto, pero Perl también soporta la Programación Orientada a Objetos (POO). Empezando por el principio, una clase es una colección de variables y de funciones que acceden a esas variables. Un objeto es una instanciación particular de una clase.  En Perl, casi todos los módulos son, en realidad, objetos. Veamos un ejemplo de uso de un objeto.
En el ejemplo anterior, tenemos la clase Persona y para crear un objeto de este tipo de clase ($uno) se utiliza el método new, o sea, se usa el constructor de la clase. Posteriormente se han utilizado tres métodos de la clase (nombre, edad y cumple) que nos muestran/modifican la edad y el nombre de la clase Persona. También tenemos que decir que para crear un objeto de la clase Persona, se ha llamado directamente a dicha clase persona y es, por tanto, un método de clase. Los métodos de clase, también pueden ser llamados con la siguiente sintaxis:
Como hacer nuestra propia clase Lo primero, para construir nuestra propia clase, será darle un nombre. Dicho nombre también será el nombre del fichero (más la extensión .pm -de perl module-) donde tendremos la clase. Después tendremos que empezar la clase con:  Encabezado de la clase Persona (fichero Persona.pm)  la primera línea, sirve para indicar, que es una clase lo que estamos creando, y la segunda línea nos dice que tenemos que ser estrictos a la hora de programar, es decir, que hay que declarar las variables antes de usarlas, como en casi todos los lenguajes de programación.
Constructor  Después tenemos que programar el constructor, que podemos llamar como nos apetezca, pero por convención se utiliza el nombre new. En el constructor, primero miramos la clase que es, En el anterior trozo de código para averiguar la clase a la que pertenezco, se mira si es o no una referencia lo que se pasa. Esto es para que el constructor pueda ser llamado como un método de clase (como parámetro tiene el tipo de referencia que recibe) o como un método de objeto (como primer parámetro recibe el objeto).
Una vez que sabemos la clase que estamos construyendo, declaramos las propiedades (variables de instancia) de la clase,  En el código anterior , estamos usando una referencia (de ahí la notación con -> ) a un arrayasociativo. De esta forma podremos darle nombres a las propiedades del objeto. También podríamos haber usado una referencia a un array indexado (con $self=[];), pero la forma de acceder a las propiedades sería mediante índices:
Una vez averiguada la clase que somos y declaradas las variables de instancia, Perl no tiene que dar el visto bueno a la clase (bendecirla) y al final, del constructor, devolvemos la clase creada. También podríamos haber bendecido sólo el objeto en sí (bless $self;), pero si lo hacemos así no sabremos a que clase pertenece y no se podrá heredar de él.  De esta forma el constructor nos queda como sigue:
Métodos de la clase y destructor  También tendremos que construir nuestros métodos para la clase. Para ello sólo tenemos que tener en cuenta que un método de una clase es simplemente una función (o subrutina) que toma como primer parámetro el tipo de clase a la que pertenece el método.  Podemos hacer el destructor (no obligatorio), que es un método, análogo a los anteriores, pero con la única diferencia en que se debe llamar DESTROY o END Para terminar ponemos un 1; esto es así para que Perl pueda interpretar la clase de forma independiente y con esto no hace nada, es "sólo" un script que devuelve 1.
Clase Persona (ejemplo)
Herencia Para realizar la herencia, tan sólo tenemos que añadir al array@ISA una lista de antecesores (si solo hay uno será herencia simple y si hay más es herencia múltiple). Cuando el intérprete de Perl no encuentre un método en la clase, buscará dicho método en la primera clase de la que hereda, después en la segunda, etc.
Como utilizar MySQL con Perl  MySQL es la base de datos Open Source más popular y extendida, además se puede utilizar con muchos lenguajes, no solo con PHP, veremos que con Perl también es posible. Para conectar a MySQL desde perl utilizaremos el módulo DBI. Primero conectaremos a la base de datos con el método connect, ejecutaremos una consulta con los métodos prepare y execute y por último leeremos los datos con los métodos bind_colums y fetch.  Este es el ejemplo:
#!/usr/bin/perluse CGI::Carpqw(fatalsToBrowser);print "Content-type: text/htmlnn";use DBI;#Datos de la conexión $db="prueba";$host="localhost";$port="3306";$userid="root";$passwd="";$connectionInfo="DBI:mysql:database=$db;$host:$port";# Realizamos la conexión a la base de datos $dbh = DBI->connect($connectionInfo,$userid,$passwd);/* Suponiendo que en nuestra base de datos "prueba" existe una tabla con nombre "lenguajes" y los campos "nombre"y "descripción" ejecutaremos esta sentencia SQL */#Sentencia SQL $query = "SELECT nombre,descripcion FROM lenguajes";# Primero hay que "preparar" el query$sth = $dbh->prepare($query);# Ejecutamos el query$sth->execute();
# Ejecutamos el query$sth->execute();/* El primer parámetro lo dejaremos como undef. En los demás parámetros debemos pasar por referencia las variables que corresponden a cada campo, en el orden en el que aparecen en el query */ $sth->bind_columns(undef, $nombre, $descripcion);print "Resultados<p>";# Recorremos los resultados obtenidos de la base de datos while($sth->fetch()) {print "$nombre - $descripcion<br>";}# Indicamos que hemos acabado y desconectamos $sth->finish();$dbh->disconnect;
Cómo Manejar errores en Perl Básicamente existen 2 grandes tipos de errores en la programación, errores de lógica y errores de sintáxis, los cuales serán desarrollados a continuación. ERRORES LÓGICOS Estos ocurren cuando el programa se ejecuta correctamente, pero no nos trae los resultados que estábamos esperando, o sea, no hace lo que esperábamos. Esto significa que hubo algo en la lógica del programa que no tuvimos en cuenta. Son los errores más difíciles de corregir ya que puede implicar que todo el programa esté mal diseñado, necesitando así una restructuración total.  Para prevenir y evitar esta clase de problemas existen 2 herramientas MUY BUENAS: A) DIAGRAMA DE FLUJO  Se realizan los planos del sistema gráficamente, como hacen los arquitectos con los planos de una casa. Mediante símbolos se diseña la lógica y el flujo de la información.
B) PSEUDOCÓDIGO  Se escribe el programa tal como se escribiría en el código fuente, pero en vez de utilizar la sintaxis compleja del lenguaje, se utiliza un CASI-LENGUAJE más fácil de utilizar en donde cada línea de pseudocódigo equivaldría a cada una de las funciones del programa. Así, se enfoca la atención en la lógica del programa y no en los detalles técnicos del lenguaje. EJEMPLO CODIGO: if ($nombre eq 'juan'){&saludar();} EJEMPLO PSEUDO-CODIGO: SI (NOMBRE = JUAN){IR A FUNCION SALUDAR;} Una vez utilizadas estas herramientas, ya estamos listos para entrar a programar el código fuente, que seguro tendrá muchos menos errores que si empezáramos a codificar desde el principio.
ERRORES DE SINTAXIS  Estos son los más comunes y los más fáciles de corregir, es simplemente cuando escribimos mal o nos olvidamos de alguna de las reglas del lenguaje. Como terminar una instrucción sin el punto y coma. Para esta clase de errores también existen 2 herramientas muy útiles: HACER RESUCITAR AL SCRIPT  ¿Como resucitar el script? colocando al principio de cada línea un numeral (#) para que con esto no se tengan en cuenta las líneas en las cuales sospechamos que puede estar el error, de esta manera en cada línea empezada por # simplemente no se ejecutará pues el interprete de Perl la ignorará por completo. Una ves que tenemos resucitado el script, empezamos a quitar una por una todos los #, ejecutando el script cada vez que le quitamos un #, así podremos darnos cuenta de cual es la línea de código que hacía que todo el programa fallara.
DIRECCIONAR LOS ERRORES A UNA FUNCIÓN Hay errores que solo son visibles cuando se ejecutan esas líneas de código, no cuando se compilan. Razón por la cual si una función no fue bien probada puede ser que no nos demos cuenta y liberemos un programa que en verdad tiene fallas. Pero estas fallas se pueden direccionar, haciendo que si alguna ves una función falla, no nos produzca la baja total del sistema, sino que solamente quede sin la función que falló.  sub error {print "content-type: text/htmlnn";print "Error: Cant $_[0] the $_[1]";print "comunicate con Esteban Quintana";exit;}
Esto se hace creando una función de error, la cual realice las tareas de administración de errores que pueden ser: · Capturar el script que falló y capturar el día y la hora exacta.  · Almacenar en una base de datos todos los errores producidos.  · Disparar mails al administrador del sistema indicando que se produjo el error.  · Mostrar al usuario un mensaje que no lo alerte ni asuste, simplemente le indique que esa función no está disponible en ese momento!!!  La función se llama de la siguiente manera: &logear_usuario() || &error('logear','usuario');#en verdad se le pueden pasar los parámetros que queramos!!!!  Aunque siempre vamos a tener errores, estos se pueden minimizar al máximo si Analizamos y Planificamos bien nuestro proyecto de software, utilizando las herramientas de pseudocódigo y diagramas de flujo ANTES de empezar a programar en el lenguaje.
Instalación de perl
Instalación de Perl  Como es lógico, antes de empezar a ponernos a escribir programas de Perl como locos es necesario instalar o tener instalado el intérprete de Perl. Lo podemos encontrar en las siguientes direcciones:  En www.perl.com que es un buen sitio de referencia para empezar con Perl. En el CPAN que el sitio más completo de recursos de Perl En ActiveState si lo que usamos es Windows en sus diferentes variantes
Instalación de Perl en Linux Hoy en día todas las distribuciones incluyen casi de serie un intérprete de Perl, es decir, el intérprete de Perl se instala casi por defecto (muy mínima debería ser las instalación para que no se incluyera o quitarlo a propósito). Debido a la característica que antes apuntabámos de su utilidad para realizar tareas de administración del sistema.  Para instalar Perl (o instalar una versión actualizada), lo primero que hay que decidir es si instalar una versión compilada (binaria) o compilar nosotros mismos. Ambas cosas (fuentes o binarios) se pueden encontrar en www.cpan.org para multitud de Sistemas Unix ( y otros no Unix).  Si te bajas una versión compilada y específica para tu sistema, simplemente ejecutas el binario que te bajes (descomprimiéndolo si estuviera comprimido) o instálandolo con rpm -Uhvperl_compilado.rpm si es un fichero rpm. El único problema que te puedes encontrar es que te haga falta alguna librería, y ahí es donde se complican las cosas, también tendrás que instalarla.
Instalación de Perl en Windows Para instalar Perl en Windows hay también dos opciones, la primera, que es la más aconsejable, es obtener la última versión de Active Perl, que es la versión de Perl para Windows compilada por la compañía ActiveState. Para instalar esta versión, sólo nos hace falta el Microsoft Installer, y una parche de las DCOM para windows 95, si ese es el sistema "operativo" que utilizamos.  La otra opción (menos recomendable) que tenemos es bajarnos el código fuente de www.cpan.org, descomprimirla (hay versiones del tar, del gzip para windows en el CPAN) y compilarla. Para compilar el código fuente, hace falta el Microsoft Visual C++ o Mingw32 con EGCS o GCC. También nos hará falta una utilidad make. MS Visual C++ viene con nmake, aunque también se puede usar dmake (una versión compilada con Mingw32). Se aconseja leer el fichero README.win32 (sobre todo si usas Mingw32).
Una vez que se cumplen todos los requisitos, los pasos son:  Nmake nmake test  nmakeinstall Hay que tener en cuenta que la versión de Perl para Windows 95 la funcionalidad no es completa en algunos módulos (en el resto de sabores de windows va bien: 98,Me,NT200,XP).
ejemplos
PRIMER PROGRAMA PERL Los programas de PERL, por lo general, inician con la línea: #!/usr/bin/perl print "HOLA MUNDO"; Mandaría a imprimir a pantalla «HOLA MUNDO»
Ahora veremos una versión avanzada del HOLA MUNDO.En nuestro primer programa no utilizamos ninguna variable, por lo que para explicar estos conceptos necesitaremos un nuevo programa. Este es una versión personalizada del anterior  HOLA MUNDO. #!/usr/bin/perl #Programa Hola Mundo print "Hola cual es tu nombre?:"; $nombre=<STDIN>; chop($nombre); print "$nombre!, bonito nombre, cuantos años tienes?:"; $edad=<STDIN>; print "sabias que te faltan ".(100-$edad)." para tener 100?Adios!";
Resumen
En esta presentación hemos visto los siguientes temas  QUE  ES PERL  Historia de PERL Ventajas sobre el uso de PERL Lenguaje Interpretado  Consideraciones de PERL REGLAS DE PERL Claridad  Nombres de Variables  Identificación Sencillez  Base de datos en PERL
TIPO DE DATOS EN PERL Datos Escalares  Programación con Variables  Caracteres especiales  Operadores  Asignación de Operadores  Autoincremento  Y Potencia Concatenar y Chop Arrays POP/PUSH/SHIFT /UNISHIFT Arrays asociativos  Estructuras control de Flujo  Funciones  Uso de clases y Objetos  Como hacer nuestra Propia clase  Constructor  Métodos de la Clase Y destructor  Herencia
Como   utilizar MYSQL en PERL Ejemplo de conexión 							 Manejo de Errores en Perl  Errores Lógicos  Diagrama de Flujo  Pseudocódigo  							 Errores de Sintaxis  Resucitar al Scrip Direccionar lo Errores A una  Funcion
Instalación de PERL Instalación en Linux  Instalación en Windows  Ejemplos  Mi primer Programa  Versión avanzada de Hola Mundo  Resumen
EXPO PERL UTT
EXPO PERL UTT

Más contenido relacionado

La actualidad más candente (17)

Tutorial C
Tutorial CTutorial C
Tutorial C
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 
Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Consultas linq
Consultas linqConsultas linq
Consultas linq
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandro
 
Compiladores
CompiladoresCompiladores
Compiladores
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Lógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalLógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de Pascal
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Turbo Pascal 7
Turbo Pascal 7Turbo Pascal 7
Turbo Pascal 7
 
Turbo pascal
Turbo pascalTurbo pascal
Turbo pascal
 
Programación en Perl
Programación en PerlProgramación en Perl
Programación en Perl
 

Similar a EXPO PERL UTT

Similar a EXPO PERL UTT (20)

3
33
3
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Baño
BañoBaño
Baño
 
LENGUAJE en C
LENGUAJE en CLENGUAJE en C
LENGUAJE en C
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
bibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdfbibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdf
 
Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_
 
BIBLIOTECAS PARA C++
BIBLIOTECAS PARA C++BIBLIOTECAS PARA C++
BIBLIOTECAS PARA C++
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++
 
algoritmo
algoritmoalgoritmo
algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Pascal
PascalPascal
Pascal
 
Jag
JagJag
Jag
 
Jag
JagJag
Jag
 
Herramientas de software libre
Herramientas de software libreHerramientas de software libre
Herramientas de software libre
 
Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#
 
Urso de pascal por nacho cabanes
Urso de pascal por nacho cabanesUrso de pascal por nacho cabanes
Urso de pascal por nacho cabanes
 
cap2.pdf
cap2.pdfcap2.pdf
cap2.pdf
 

Último

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 

Último (20)

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 

EXPO PERL UTT

  • 1. UNIVERSIDAD TECNOLÓGICADE TECAMACHALCO Programación de Aplicaciones José Alberto Rojas Aragón Presenta: González Limón José Luis Rodríguez Navor María Araceli
  • 2. ¿ QUE ES PERL? PERL significa PracticalExtraction and ReportLanguage , algo así como lenguaje práctico de extracción y de informes, fue creado por Larry Wall; La primera versión sale en el año de 1987. Es un lenguaje interpretado que tiene varias utilidades, pero está principalmente orientado a la búsqueda, extracción y el formateado de ficheros de tipo texto, También es muy usado para manejo y gestión de procesos ( estado de procesos , conteo y extracción de parámetros característicos, etc...)
  • 3. Es una combinación de las características de los lenguajes más usados por los programadores de sistemas, como son los shell del sistema operativo UNIX, la utilidad ( que incluye un lenguaje interpretado propio) awk para formateo y tratamiento de texto e incluso características de Pascal, aunque su potencia se basa en la similitud con las mejores características del lenguaje estructurado C. En general cualquier utilidad que se necesite realizar en sh, awk, o sed, se puede implementar de una manera mas potente y sencilla mediante el lenguaje PERL.
  • 4. Algunas de las ventajas del uso del lenguaje PERL son las siguientes: · Construcción de pequeños programas que pueden ser usados como filtros para obtener información de ficheros, realizar búsquedas, ... · Se puede utilizar en varios entornos, como puede ser Windows 95, OS/2, ..., sin alizar cambios de código, siendo únicamente necesario la introducción del intérprete PERL correspondiente a cada sistema operativo. · También es uno de los lenguajes mas utilizados en la programación de CGI scripts, que son guiones o scripts que utilizan el interface CGI (Common Gateway Interface), para intercambio de información entre aplicaciones externas y servicios de información. Como ejemplo de ello tenemos los programas de búsqueda usados por el browser Netscape.
  • 5. PERL es un lenguaje interpretado, aunque en realidad, el intérprete de PERL, como todos los intérpretes modernos, compila los programas antes de ejecutarlos. Por eso se habla de scripts, y no de programas, concepto referido principalmente a programas compilados al lenguaje máquina nativo del ordenador y sistema operativo en el que se ejecuta.
  • 6. PERL es un lenguaje de programación que busca antes que nada el facilitar laelaboraciónde tareas comunes en sistemas tipo UNIX, donde tradicionalmente las tareas de administración y proceso de datos se realiza con herramientas muy rudimentarias y por demás hostiles al usuario o administrador. Pero que se aplican sobre grandes cantidades de información (por lo regular texto) por lo que se requiere que sean de alto rendimiento.
  • 7. Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos los sistemas operativos: DOS (por ejemplo, la última versión, OpenDos) Windows NT, Amiga... Los scripts son compatibles entre las diversas plataformas, de forma que es un verdadero lenguaje multiplataforma. Muchos fabricantes lo incluyen en sus versiones de UNIX; también el Linux lo incluye.
  • 8. ALGUNAS CONSIDERACIONES DE PERL PERL no establece ninguna filosofía de programación (de hecho, no se puede decir que sea orientado a objetos, modular o estructurado aun cuando soporta directamente todos estos paradigmas de programación) Los objetivos que se tuvieron en cuenta al diseñar la sintáxis de PERL fueron la facilidad de aprendizaje y de uso y la claridad de código, las cuales, considero que son necesarias (aunque pueden escribirse programas en PERL complejos e inteligibles si así se desea).
  • 9. Por si fuese poco, PERL no es ni un compilador ni un intérprete, ya que está en un punto intermedio. Cuando mandamos a ejecutar un programa en PERL, se compila el código fuente a un código intermedio en memoria, se optimiza (como si fuésemos a elaborar un programa ejecutable) pero es ejecutado por un motor, como si se tratase de un intérprete. El resultado final, es que utilizamos algo que se comporta como un intérprete pero que tiene un rendimiento comparativo al de programas compilados. Sin embargo, ya existen compiladores de PERL con la versión 5.
  • 10. En fin, PERL no nos obliga a nada, pero como es lógico hay ciertas reglas querecomiendo seguir para facilitar nuestro trabajo: Claridad En la mecánica de programación actual, los programas deben de ser entendibles por la persona que nos suceda en tareas de mantenimiento, de lo contrario perjudicamos tanto a nuestros compañeros de trabajo como a nuestra propia libertad para progresar y mantenernos libres de preocupaciones.
  • 11. Nombres de variables Es conveniente dar la máxima claridad a los nombres de las variables sin hacerlos demasiado grandes, el nombre de los contadores y variables que guardan valores concernientes a un pequeño segmento de código por lo regular son de un par de letras (c1, c2, ... cx para los contadores, s1, s2, etc para cadenas de entrada etc.) mientras que las variables que afectan a diversos segmentos (a modo de regla, que tienen su definición en una pantalla distinta a donde se usan) tienen nombres explicativos que conviene que no excedan los 12 caracteres. Además, los nombres de archivos se usan con mayúsculas (ARCHENT, ARCHSAL, etc) y las clases tienen su primera letra mayúscula.
  • 12. Indentificación Una costumbre ya clásica de la programación, en lo personal, y a lo largo de los distintos programas, es tabular el código dos espacios hacia adelante al abrir cada bloque, y terminar la tabulación al terminar el bloque, de modo que las llaves de apertura y cierre quedan a la vista y en la misma columna, solas en sus renglones (esto incrementa algo el numero de líneas, pero facilita sobremanera la búsqueda y corrección de los diversos bloques de control). Sencillez Es cómodo en ocasiones el comprimir una serie de instrucciones en una sola línea, queda al criterio decidir cuando se gana en claridad con un código mas o menos extenso, pero no debe titubearse en comentar el código que sea complejo.
  • 13. Bases de datos en PERL Lo más fácil es usar el módulo DBI (que, como todos los demás, está en el CPAN), con un driver específico para el gestor de bases de datos, o si hay ninguno específico, y la base de datos está accesible usando ODBC, puede utilizarse con ODBC. En Windows hay un módulo alternativo, específico para ODBC, denominado Win32::ODBC. Con cualquiera de estos dos módulos, se puede usar con cualquier sistema de gestión de bases de datos. En Linux y UNIX, se puede usar con MySQL o MiniSQL, o Postgres. Por último, en Windows se puede usar también Microsoft SQL Server combinado con ODBC. Eso sí, como es inherente a las conexiones ODBC, es una forma menos ágil de gestionar una base de datos.
  • 14. Tipo de datos En perl
  • 15. Datos escalares Los datos escalares son las variables simples y pueden contener enteros, reales, cadenas o referencias. Este tipo de variables van precedido siempre por $. Esta es una de las mayores diferencias con lenguajes como el C y es que a cualquier variable escalar se le antepone dicho signo ($). La forma de nombrar las variables también es similar, se puede usar letras números y _ empezando siempre por una letra. En Perl las variables no se tienen porque declarar, aunque se declaran con my. Además la interpretación del tipo de variable se hace en función del contenido, aunque todas la variables numéricas internamente se tratan como reales.
  • 17. Como podemos ver en el anterior ejemplo las cadenas se encierran entre comillas dobles (" "), aunque también se pueden cerrar entre comillas simples (' '). Hay caracteres especiales (retorno de carro, tabulador, etc.) que como en muchos otros lenguajes se presentan mediante la barra de escape: retorno de carro a una nueva línea retorno a la posición anterior pitido tabulación (8 espacios) el caracter quot; las comillas dobles (aunque si la cadena está delimita por comillas simples, no hace falta) apos; las comillas simples (aunque si la cadena está delimita por comillas dobles, no hace falta)
  • 18. Operadores de datos escalares El operador de asignación se utiliza, igual que en C, el símbolo =, como se puede observar en el primer ejemplo de la página. También se pueden mezclar operadores aritméticos junto con la asignación. Asignación y operadores aritméticos:
  • 19. Los operadores de comparación, son similares a los de C, pero depende si estamos comparando cadenas o datos numéricos. Los operadores para números y para cadenas son: En Perl también tenemos los operadores de autoincremento (++) y autodecremento (--). Y además tenemos el operador potencia **(que es muy parecido aunque muy diferente)
  • 21. Concatenar y chop Para concatenar cadenas tenemos el operador punto (.) y la función chop para quitar el último carácter a una cadena.
  • 22. Arrays Un Array en Perl es como los de C, pero con la diferencia de que van precedidos del símbolo arroba @. (como las variables de $). La forma de acceder a ellos es mediante la indexación, contando desde cero. En Perl no nos tenemos que preocupar de reservar la memoria ni gestionarla de ninguna forma. Hay que tener en cuenta que cuando se accede a un elemento de un array, ya no se está haciendo referencia a un array sino a un dato escalar, por lo que debe ir precedido del símbolo $. Vamos a verlo con un ejemplo:
  • 23. Ejemplo de Arrays: Para sacar/insertar elementos se pueden usar las funciones pop y push. Que sacan o insertan, respectivamente, un elemento al final, es decir, tratan el array como una pila. También podemos utilizar shift y unshift para sacar o insertar, respectivamente, un elemnto del principio del array. Para ver el tamaño (número de elementos) de un array se utiliza el símbolo de sostenido (#) entre el símbolo $ y el nombre del array, es decir, con $#array. Este tamaño nos lo da contando desde 0 o, lo que es lo mismo, realmente nos da el último índice que existe en el array. Si el array no tuviese ningún elemento, su tamaño sería -1.
  • 24. Ejemplo de pop/push, shift/ unshift, y tamaño del array:
  • 25. Arrays asociativos Un array asociativo en Perl o tabla hash (como también se le denomina) es un array donde los elementos son referenciados mediante claves en vez de una posición. Para los array asociativos se utiliza el símbolo %. Al igual que sucede con los arrays normales, cuando se accede a un elemento de un array asociativo se debe referenciar como un escalar con el símbolo $. Además la indexación (orden de los datos) por clave no se hace utilizando los corchetes, sino que se utilizan las llaves ({   }).
  • 26. Estructuras de control de flujo Perl mantiene todas las estructuras de control de flujo que pueda tener cualquier otro lenguaje, pero con la peculiaridad de que un bloque siempre debe ir entre llaves ({   }), aun cuando el bloque contenga un única sentencia. Un resumen general de las estructuras de control de flujo es: if (EXPR) BLOQUE if (EXPR) BLOQUE elseBLOQUE if (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE SENTENCIA if (EXPR); unless (EXPR) BLOQUE unless (EXPR) BLOQUE else BLOQUE unless (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE SENTENCIA unless (EXPR); while (EXPR) BLOQUE SENTENCIA while (EXPR); until (EXPR) BLOQUE SENTENCIA until (EXPR); do BLOQUE while (EXPR); do BLOQUE until (EXPR); for (EXPR;EXPR;EXPR) BLOQUE foreach $var(Array) BLOQUE Donde EXPR es una expresión, BLOQUE es una sentencia o conjunto de estas encerrado entre llaves y SENTENCIA es una sola sentencia
  • 27. Ejemplos de estructuras de control:
  • 29. Uso de Clases y Objetos Hasta ahora no lo hemos visto, pero Perl también soporta la Programación Orientada a Objetos (POO). Empezando por el principio, una clase es una colección de variables y de funciones que acceden a esas variables. Un objeto es una instanciación particular de una clase. En Perl, casi todos los módulos son, en realidad, objetos. Veamos un ejemplo de uso de un objeto.
  • 30. En el ejemplo anterior, tenemos la clase Persona y para crear un objeto de este tipo de clase ($uno) se utiliza el método new, o sea, se usa el constructor de la clase. Posteriormente se han utilizado tres métodos de la clase (nombre, edad y cumple) que nos muestran/modifican la edad y el nombre de la clase Persona. También tenemos que decir que para crear un objeto de la clase Persona, se ha llamado directamente a dicha clase persona y es, por tanto, un método de clase. Los métodos de clase, también pueden ser llamados con la siguiente sintaxis:
  • 31. Como hacer nuestra propia clase Lo primero, para construir nuestra propia clase, será darle un nombre. Dicho nombre también será el nombre del fichero (más la extensión .pm -de perl module-) donde tendremos la clase. Después tendremos que empezar la clase con: Encabezado de la clase Persona (fichero Persona.pm) la primera línea, sirve para indicar, que es una clase lo que estamos creando, y la segunda línea nos dice que tenemos que ser estrictos a la hora de programar, es decir, que hay que declarar las variables antes de usarlas, como en casi todos los lenguajes de programación.
  • 32. Constructor Después tenemos que programar el constructor, que podemos llamar como nos apetezca, pero por convención se utiliza el nombre new. En el constructor, primero miramos la clase que es, En el anterior trozo de código para averiguar la clase a la que pertenezco, se mira si es o no una referencia lo que se pasa. Esto es para que el constructor pueda ser llamado como un método de clase (como parámetro tiene el tipo de referencia que recibe) o como un método de objeto (como primer parámetro recibe el objeto).
  • 33. Una vez que sabemos la clase que estamos construyendo, declaramos las propiedades (variables de instancia) de la clase, En el código anterior , estamos usando una referencia (de ahí la notación con -> ) a un arrayasociativo. De esta forma podremos darle nombres a las propiedades del objeto. También podríamos haber usado una referencia a un array indexado (con $self=[];), pero la forma de acceder a las propiedades sería mediante índices:
  • 34. Una vez averiguada la clase que somos y declaradas las variables de instancia, Perl no tiene que dar el visto bueno a la clase (bendecirla) y al final, del constructor, devolvemos la clase creada. También podríamos haber bendecido sólo el objeto en sí (bless $self;), pero si lo hacemos así no sabremos a que clase pertenece y no se podrá heredar de él. De esta forma el constructor nos queda como sigue:
  • 35. Métodos de la clase y destructor También tendremos que construir nuestros métodos para la clase. Para ello sólo tenemos que tener en cuenta que un método de una clase es simplemente una función (o subrutina) que toma como primer parámetro el tipo de clase a la que pertenece el método. Podemos hacer el destructor (no obligatorio), que es un método, análogo a los anteriores, pero con la única diferencia en que se debe llamar DESTROY o END Para terminar ponemos un 1; esto es así para que Perl pueda interpretar la clase de forma independiente y con esto no hace nada, es "sólo" un script que devuelve 1.
  • 36.
  • 38. Herencia Para realizar la herencia, tan sólo tenemos que añadir al array@ISA una lista de antecesores (si solo hay uno será herencia simple y si hay más es herencia múltiple). Cuando el intérprete de Perl no encuentre un método en la clase, buscará dicho método en la primera clase de la que hereda, después en la segunda, etc.
  • 39. Como utilizar MySQL con Perl MySQL es la base de datos Open Source más popular y extendida, además se puede utilizar con muchos lenguajes, no solo con PHP, veremos que con Perl también es posible. Para conectar a MySQL desde perl utilizaremos el módulo DBI. Primero conectaremos a la base de datos con el método connect, ejecutaremos una consulta con los métodos prepare y execute y por último leeremos los datos con los métodos bind_colums y fetch. Este es el ejemplo:
  • 40. #!/usr/bin/perluse CGI::Carpqw(fatalsToBrowser);print "Content-type: text/htmlnn";use DBI;#Datos de la conexión $db="prueba";$host="localhost";$port="3306";$userid="root";$passwd="";$connectionInfo="DBI:mysql:database=$db;$host:$port";# Realizamos la conexión a la base de datos $dbh = DBI->connect($connectionInfo,$userid,$passwd);/* Suponiendo que en nuestra base de datos "prueba" existe una tabla con nombre "lenguajes" y los campos "nombre"y "descripción" ejecutaremos esta sentencia SQL */#Sentencia SQL $query = "SELECT nombre,descripcion FROM lenguajes";# Primero hay que "preparar" el query$sth = $dbh->prepare($query);# Ejecutamos el query$sth->execute();
  • 41. # Ejecutamos el query$sth->execute();/* El primer parámetro lo dejaremos como undef. En los demás parámetros debemos pasar por referencia las variables que corresponden a cada campo, en el orden en el que aparecen en el query */ $sth->bind_columns(undef, $nombre, $descripcion);print "Resultados<p>";# Recorremos los resultados obtenidos de la base de datos while($sth->fetch()) {print "$nombre - $descripcion<br>";}# Indicamos que hemos acabado y desconectamos $sth->finish();$dbh->disconnect;
  • 42. Cómo Manejar errores en Perl Básicamente existen 2 grandes tipos de errores en la programación, errores de lógica y errores de sintáxis, los cuales serán desarrollados a continuación. ERRORES LÓGICOS Estos ocurren cuando el programa se ejecuta correctamente, pero no nos trae los resultados que estábamos esperando, o sea, no hace lo que esperábamos. Esto significa que hubo algo en la lógica del programa que no tuvimos en cuenta. Son los errores más difíciles de corregir ya que puede implicar que todo el programa esté mal diseñado, necesitando así una restructuración total. Para prevenir y evitar esta clase de problemas existen 2 herramientas MUY BUENAS: A) DIAGRAMA DE FLUJO Se realizan los planos del sistema gráficamente, como hacen los arquitectos con los planos de una casa. Mediante símbolos se diseña la lógica y el flujo de la información.
  • 43. B) PSEUDOCÓDIGO Se escribe el programa tal como se escribiría en el código fuente, pero en vez de utilizar la sintaxis compleja del lenguaje, se utiliza un CASI-LENGUAJE más fácil de utilizar en donde cada línea de pseudocódigo equivaldría a cada una de las funciones del programa. Así, se enfoca la atención en la lógica del programa y no en los detalles técnicos del lenguaje. EJEMPLO CODIGO: if ($nombre eq 'juan'){&saludar();} EJEMPLO PSEUDO-CODIGO: SI (NOMBRE = JUAN){IR A FUNCION SALUDAR;} Una vez utilizadas estas herramientas, ya estamos listos para entrar a programar el código fuente, que seguro tendrá muchos menos errores que si empezáramos a codificar desde el principio.
  • 44. ERRORES DE SINTAXIS Estos son los más comunes y los más fáciles de corregir, es simplemente cuando escribimos mal o nos olvidamos de alguna de las reglas del lenguaje. Como terminar una instrucción sin el punto y coma. Para esta clase de errores también existen 2 herramientas muy útiles: HACER RESUCITAR AL SCRIPT ¿Como resucitar el script? colocando al principio de cada línea un numeral (#) para que con esto no se tengan en cuenta las líneas en las cuales sospechamos que puede estar el error, de esta manera en cada línea empezada por # simplemente no se ejecutará pues el interprete de Perl la ignorará por completo. Una ves que tenemos resucitado el script, empezamos a quitar una por una todos los #, ejecutando el script cada vez que le quitamos un #, así podremos darnos cuenta de cual es la línea de código que hacía que todo el programa fallara.
  • 45. DIRECCIONAR LOS ERRORES A UNA FUNCIÓN Hay errores que solo son visibles cuando se ejecutan esas líneas de código, no cuando se compilan. Razón por la cual si una función no fue bien probada puede ser que no nos demos cuenta y liberemos un programa que en verdad tiene fallas. Pero estas fallas se pueden direccionar, haciendo que si alguna ves una función falla, no nos produzca la baja total del sistema, sino que solamente quede sin la función que falló. sub error {print "content-type: text/htmlnn";print "Error: Cant $_[0] the $_[1]";print "comunicate con Esteban Quintana";exit;}
  • 46. Esto se hace creando una función de error, la cual realice las tareas de administración de errores que pueden ser: · Capturar el script que falló y capturar el día y la hora exacta. · Almacenar en una base de datos todos los errores producidos. · Disparar mails al administrador del sistema indicando que se produjo el error. · Mostrar al usuario un mensaje que no lo alerte ni asuste, simplemente le indique que esa función no está disponible en ese momento!!! La función se llama de la siguiente manera: &logear_usuario() || &error('logear','usuario');#en verdad se le pueden pasar los parámetros que queramos!!!! Aunque siempre vamos a tener errores, estos se pueden minimizar al máximo si Analizamos y Planificamos bien nuestro proyecto de software, utilizando las herramientas de pseudocódigo y diagramas de flujo ANTES de empezar a programar en el lenguaje.
  • 48. Instalación de Perl Como es lógico, antes de empezar a ponernos a escribir programas de Perl como locos es necesario instalar o tener instalado el intérprete de Perl. Lo podemos encontrar en las siguientes direcciones: En www.perl.com que es un buen sitio de referencia para empezar con Perl. En el CPAN que el sitio más completo de recursos de Perl En ActiveState si lo que usamos es Windows en sus diferentes variantes
  • 49. Instalación de Perl en Linux Hoy en día todas las distribuciones incluyen casi de serie un intérprete de Perl, es decir, el intérprete de Perl se instala casi por defecto (muy mínima debería ser las instalación para que no se incluyera o quitarlo a propósito). Debido a la característica que antes apuntabámos de su utilidad para realizar tareas de administración del sistema. Para instalar Perl (o instalar una versión actualizada), lo primero que hay que decidir es si instalar una versión compilada (binaria) o compilar nosotros mismos. Ambas cosas (fuentes o binarios) se pueden encontrar en www.cpan.org para multitud de Sistemas Unix ( y otros no Unix). Si te bajas una versión compilada y específica para tu sistema, simplemente ejecutas el binario que te bajes (descomprimiéndolo si estuviera comprimido) o instálandolo con rpm -Uhvperl_compilado.rpm si es un fichero rpm. El único problema que te puedes encontrar es que te haga falta alguna librería, y ahí es donde se complican las cosas, también tendrás que instalarla.
  • 50.
  • 51.
  • 52. Instalación de Perl en Windows Para instalar Perl en Windows hay también dos opciones, la primera, que es la más aconsejable, es obtener la última versión de Active Perl, que es la versión de Perl para Windows compilada por la compañía ActiveState. Para instalar esta versión, sólo nos hace falta el Microsoft Installer, y una parche de las DCOM para windows 95, si ese es el sistema "operativo" que utilizamos. La otra opción (menos recomendable) que tenemos es bajarnos el código fuente de www.cpan.org, descomprimirla (hay versiones del tar, del gzip para windows en el CPAN) y compilarla. Para compilar el código fuente, hace falta el Microsoft Visual C++ o Mingw32 con EGCS o GCC. También nos hará falta una utilidad make. MS Visual C++ viene con nmake, aunque también se puede usar dmake (una versión compilada con Mingw32). Se aconseja leer el fichero README.win32 (sobre todo si usas Mingw32).
  • 53. Una vez que se cumplen todos los requisitos, los pasos son: Nmake nmake test nmakeinstall Hay que tener en cuenta que la versión de Perl para Windows 95 la funcionalidad no es completa en algunos módulos (en el resto de sabores de windows va bien: 98,Me,NT200,XP).
  • 55. PRIMER PROGRAMA PERL Los programas de PERL, por lo general, inician con la línea: #!/usr/bin/perl print "HOLA MUNDO"; Mandaría a imprimir a pantalla «HOLA MUNDO»
  • 56. Ahora veremos una versión avanzada del HOLA MUNDO.En nuestro primer programa no utilizamos ninguna variable, por lo que para explicar estos conceptos necesitaremos un nuevo programa. Este es una versión personalizada del anterior HOLA MUNDO. #!/usr/bin/perl #Programa Hola Mundo print "Hola cual es tu nombre?:"; $nombre=<STDIN>; chop($nombre); print "$nombre!, bonito nombre, cuantos años tienes?:"; $edad=<STDIN>; print "sabias que te faltan ".(100-$edad)." para tener 100?Adios!";
  • 58. En esta presentación hemos visto los siguientes temas QUE ES PERL Historia de PERL Ventajas sobre el uso de PERL Lenguaje Interpretado Consideraciones de PERL REGLAS DE PERL Claridad Nombres de Variables Identificación Sencillez Base de datos en PERL
  • 59. TIPO DE DATOS EN PERL Datos Escalares Programación con Variables Caracteres especiales Operadores Asignación de Operadores Autoincremento Y Potencia Concatenar y Chop Arrays POP/PUSH/SHIFT /UNISHIFT Arrays asociativos Estructuras control de Flujo Funciones Uso de clases y Objetos Como hacer nuestra Propia clase Constructor Métodos de la Clase Y destructor Herencia
  • 60. Como utilizar MYSQL en PERL Ejemplo de conexión Manejo de Errores en Perl Errores Lógicos Diagrama de Flujo Pseudocódigo Errores de Sintaxis Resucitar al Scrip Direccionar lo Errores A una Funcion
  • 61. Instalación de PERL Instalación en Linux Instalación en Windows Ejemplos Mi primer Programa Versión avanzada de Hola Mundo Resumen