1 / 26

Introducción a Perl

Introducción a Perl. Verónica Jiménez Jacinto vjimenez@ibt.unam.mx Enero 2010. Caracteristicas de Perl.

makara
Download Presentation

Introducción a Perl

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción a Perl Verónica Jiménez Jacinto vjimenez@ibt.unam.mx Enero 2010

  2. Caracteristicas de Perl... • Es un lenguaje de propósito general originalmente desarrollado para la manipulación de texto y ahora utilizado para un amplio rango de tareas, como administración de sistemas, desarrollo web, programación en red, y más. • Se previó que fuera práctico. • Sus principales caracterásticas son que es fácil de usar, y tiene incorporado un poderoso sistema de procesamiento de texto.

  3. La primera linea ... • La primera linea de un programa en Perl contiene el shebang (par de caracteres que identifica el texto que sigue), que le indica al sistema operativo dónde encontrar el intérprete de Perl. #!/usr/bin/perl

  4. La instrucción print • Esta instruccion envia información a la pantalla o a un archivo. : #!/usr/local/bin/perl print "Hola Mundo!\n"; print "Esto se escribe en\ndos lineas.\n"; print "Pero esto", "Se escribe en una sola linea.\n"; print '¿Porque aqui no se ejecuta como cambio de linea?.';

  5. Secuencias de escape • Las siguientes secuencias de escape pueden ser interpretadas en la instrucción print o en la lectura de archivos: • \n cambio de linea y retorno de carro • \t tabulador horizontal • \v tabulador vertical • \a bell o beep (campanita)

  6. Tipos de variables • Escalares( scalars). Cualquier cosa: $escalar • Arreglos o vectores o listas (arrays): @arreglo • Tablas asociativas o diccionarios (hashes). %hash. (TiposVariables.pl) • Declaración obligatoria con la directiva “my” • use strict; (TiposVariablesStrict.pl)

  7. Estructuras de control: condicion if(condicion){ ~~ ~~ } elsif{ ~~ }else{ ~~ ~~ ~~ }

  8. Operadores de comparacion • Perl tiene 4 importantes operadores, para construir condiciones: Num interpretación String • < ``less than'' lt • > ``greater than'' gt • == ``equal to'' eq • != ``not equal to'' ne • <= ``less than or equal to,'' le • >= ``greater than or equal to.” ge

  9. Estructuras de control: ciclo while while(condicion){ }

  10. Estructura de control:ciclo for • for(<inicio>;<condicion de paro>;<incremento>) {bloque } • Ejemplo: for($i=0;$i<20;$i++) # ejecuta el bloque de código 20 veces { print “$i .- Hola”; } for.pl

  11. Estructura de control:foreach • foreach $elemento (@arreglo) • # ciclo sobre cada uno de los elementos de un @arreglo • { # procesa cada $elemento • }

  12. Diversión con cadenas...substr • substr($a,$pos,$num) : • Regresa una subcadena de la cadena $a, desde la posición $pos, considerando $num caracteres. Si $num no es especificado, se considera el fin de la cadena como fin de la subcadena. Ejemplo: $cadena = "Bienvenidos a Perl!\n"; print substr($a, 0, 11);#"Bienvenidos" print substr($a, 13); # " a Perl!\n“ SearchString.pl

  13. Trabajando con archivos • open(FILEHANDLE,"Flatfile.txt"); Abre el archivo Flatfile.txt para leerlo y lo asocia al manejador FILEHANDLE. • open (OVERWRITE, ">overwrite.txt"); Abre el archivo overwrite.txt para escribir en él y lo asocia al manejador OVERWRITE. • open (APPEND, ">>append.txt"); Abre el archivo append.txt para agregarle cosas y lo asocia al manejador APPEND.

  14. Vive o muere... • Que hacer en caso de que archivo no se puede abrir? open (FILEH, “flatfile.txt”) || die “no se pudo abrir el archivo flatfile.txt\n”;

  15. Operadores Especiales sobre ficheros... • -r -w -x : comprueba si hay permiso • -e : comprueba si el archivo exite • -z : comprueba si el archivo tiene tamaño nulo • -s : devuelve el tamaño del archivo • -f -d : comprueban si el archivo es un fichero ó directorio if(-r 'flatfile.txt') { open(FILEHANDLE, “flatfile.txt”)|| die ... }

  16. Leyendo a traves del archivo... open(MIFICH,"fichero.txt")|| die "No puedo encontrar fichero.txt\n"; while(<MIFICH>) { print $_; # $_ contiene la línea actual } close(MIFICH); open(LOGFILE,”flatfile.txt”)|| die "no puedo abrir flatfile.txt\n"; $title = <LOGFILE>; print "Report Title: $title"; for $line (<LOGFILE>) { print $line; } close(LOGFILE);

  17. Escribiendo a traves de archivos... open(OUTF,“>fichero.txt")|| die "No puedo encontrar fichero.txt\n"; print OUTF “Nuevo contenido del archivo\n”; close (OUTF);

  18. Expresiones regulares • La consulta mas sencilla: =~ $user_location = "I see thirteen black cats under a ladder."; if ($user_location =~ /thirteen/) { print "Eek, bad luck!\n"; }

  19. Metacaracteres... • Un patrón está delimitado por dos barras inclinadas, /patrón/ • Los símbolos más habituales en expresiones regulares son: • /./ # cualquier carácter excepto \n,(wildcard) • /\s/ # es un espacio en blanco (space) • /\t/ # es un tabulador • /\w/ # es un carácter alfanumérico (word), • /\W/ # no es un carácter alfanumérico (word) • /\d/ # es un dígito • /\D/ # no es un dígito • /\A/ # es el principio de una cadena • /\Z/ # es el final de una cadena • /^/ # es el principio de una línea de archivo • /$/ # es el final de una línea de archivo

  20. cuantificadores • Los cuantificadores son: • + una ó más veces • ? cero ó una vez • * cero ó más veces • {n,m} mínimo y máximo de veces • Los parentesis se usan: • /(\d\s\w)/ # para agrupar varios símbolos en un solo patrón • /(A|B|C)/ # para definir un patrón formado por varias alternativas: coincide con 'A', con 'B' o con 'C‘ • Tambien para guardar la “memoria de lo encontrado”

  21. Ejemplos: • /ab+c/ encuentra “abc”, “abbc”,”abbbc'' y asi sucesivamente. • /ab*c/ lo mismo que el anterior, pero con “ac”. • /^http:.+html$/. Localiza un URL • /\d\d\d-\d\d\d\d/ . Un numero telefonico • /ATG\w+/ La secuencia de un gen?

  22. Mas ejemplos... • $string =“ATGTTGCCGCGATCCCGAAA"; $string =~ /(^ATG).+(C{3}).+(A{2,5})/; @subcadenas = ($1, $2, $3);

  23. # Ejemplo escrito por Bruno Contreras en Julio de 2005 • $RNA = "CAUACUAAGAUCGCGAUAUUAUUAGCGAUAUACGACU"; • $stop1 = 'UAA'; $stop2 = 'UGA'; • $stop3 = 'UAG'; • ($total1,$total2,$total3,$total) = (0,0,0,0); • while( $RNA =~ /$stop1/g ) { • $total1++; • } • while( $RNA =~ /$stop2/g ) { • $total2++; • } • while( $RNA =~ /$stop3/g ) { • $total3++; • } • while( $RNA =~ /($stop1|$stop2|$stop3)/g) { $total++; • } • print "$total1|$total2|$total3|$total\n";

  24. Subprogramas • declaracion sub analyze_string { codigo } • Llamado: &analyze_string; O analyze_string;

  25. Paso de parametros ($val1,$val2) = (8,7); @arrg3 = (3,4,5); mi_subrutina($val1,$val2,@arrg3); sub mi_subrutina { my($sarg1,$sarg2,@sarg3) = @_; print "subrutina con parámetros\n"; }

  26. Ejemplo $seq1 = “ATGGGCCGTGCTGA...UAA"; $seq2 = “ATGCGCTGTGATGA....UAG"; $ident= calculaIdentidad($seq1,$seq2); sub calculaIdentidad { my ($secA,$secB) = @_; my $id = 0; my $len =length($secA); for($pos=0;$pos< $len;$pos++) { if(substr($secA,$pos,1) eq substr($secB,$pos,1)) { $id++; } } return $id/$len; } Identidad.pl

More Related