Tipos de datos en Perl - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

Tipos de datos en Perl

Description:

Otra forma de acceder a los elementos de un array es usando el operador rango. ... t : indica si el archivo esta abierto en un terminal. Variables predefinidas ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 44
Provided by: Clau299
Category:

less

Transcript and Presenter's Notes

Title: Tipos de datos en Perl


1
Tipos de datos en Perl
  • Arreglos
  • También podemos acceder a varios elementos
    de un array de la forma _at_nom_variableindice1,...,
    indicen, por ejemplo
  • print _at_Alumnos0,1
  • imprimirá el primer y segundo elemento del
    array _at_Alumnos.
  • Otra forma de acceder a los elementos de
    un array es usando el operador rango .. , si
    quisiéramos imprimir todos los valores desde un
    índice i hasta un indice j deberíamos utilizar el
    siguiente formato _at_nom_variablei..j, por
    ejemplo

  • print  _at_Alumnos0..2

2
Tipos de datos en Perl
  • Arreglos Asociativos
  • Los arreglos asociativos se indexan
    mediante cadenas. Cada uno de los elementos del
    arreglo asociativo maneja la combinación
    elemento/valor, por ejemplo,
  • mes(enero,31, febrero,28)
  • Los arreglos asociativos se reconocen porque
    comienzan con el símbolo ( por ejemplo, mes).
  • Se tiene acceso a los elementos individuales
    utilizando cadenas especificas encerradas entre
    llaves y con el uso del símbolo _at_

3
Tipos de datos en Perl
  • empleados ( Ingeniero",100,contador",20
    )
  • Si queremos acceder a un elemento de un
    array asociativo, debemos seguir el siguiente
    formato _at_nom_variable clave .
  • Por ejemplo
  • Numero_Ing10
  • sueldos_ing _at_empleados Ingeniero"
    Numero_Ing

4
Operadores de Perl
5
Operadores de Perl
6
Operadores de Perl
  • Operadores de Comparación

7
Operadores de Perl
  • cmp
  • Comparar caracteres, retorna 0 si los
    caracteres son iguales 1 si la cadena de la
    derecha se encuentra al comienzo de la de la
    izquierda y -1 en el caso contrario. Ejemplo
  •   hola' cmp hola'
  • RETORNA 0               
  • hola alumnos ' cmp hola'    
  • RETORNA 1  
  • alumnos hola' cmp hola'        
  • RETORNA -1   
  • chao' cmp hola
  • RETORNA -1

8
Operadores de Perl
  • Indica la presencia de un patrón de
    comparación dentro de una variable que contiene
    una cadena de caracteres  
  •          if (alumnos /Carol/) ...
  • verifica si la cadena Carol' se encuentra
    dentro de alumnos y si es así, ejecuta el código
    entre llaves.

9
Operadores de Perl
  • !
  • Verifica la no existencia del patrón de
    búsqueda en una cadena. Ejemplo
  •           if (alumnos !/Claudio/) ...
  • si la cadena Claudio' no esta en alumnos se
    ejecuta el código entre llaves.

10
Operadores de Perl
  • Operadores de asignación
  • S le asigna a la variable que se encuentra a
    la izquierda, la expresión de la derecha.
  •         Saludo 'Buenos dias'
  • asigna la cadena 'Buenos dias' a la variable
    Saludo.

11
Operadores de Perl
  • Operadores de asignación
  • A parte de la función de verificación de
    existencia de un patrón, este operador también
    se utiliza para sustituir un patrón de
    comparación por otra cadena          
  • var s/good/bueno/
  • se reemplaza la ocurrencia de la cadena
    good' por la cadena bueno'.

12
Operadores de Perl
  • .  
  • Este operador concatena dos cadenas de
    caracteres, ejemplo
  •   nombre 'Juan '     nombre . Pérez'
  • nombre contendrá la cadena Juan Péreez.
  • x
  • Este operador multiplica n veces la cadena de
    caracteres, ejemplo
  •   c' x 5
  • esto contendrá ccccc

13
Operadores de Perl
  • Operadores lógicos y Relacionales
  • Operador lógico 'o', de modo que retorna
    cierto siempre que cualquiera de los patrónes de
    busqueda que componen la expresión sea cierto y
    falso cuando los dos son falsos. Ejemplo
             
  • if (var /paco luis/) ...
  • Es verdadero si en la cadena que se encuentra
    dentro de la varible existe una ocurrencia igual
    a 'paco' o igual a luis'.

14
Operadores de Perl
  • Operadores lógicos y Relacionales
  • if (var 5 var lt 2) ...
  • Es verdadero si la variable es igual a 5 o
    menor que 2.

15
Operadores de Perl
  • Operador lógico 'y' en expresiones regulares,
    permite confrontar 2 patrones.
  • Por ejemplo   
  •    if (var /auto moto/) ...
  • Es verdadero si existe una ocurrencia de la
    cadena auto' y otra de la cadena 'moto'.

16
Estructuras de control
  • Bifurcaciones
  • 1. if (expresión)
  • Bloque de instrucciones
  • 2. if (expresión)
  • Bloque de instrucciones
  • else Bloque de instrucciones
  • 3. if (expresión)
  • Bloque de instrucciones
  • elseif(expresión) Bloque de instrucciones
  • .
  • else Bloque de
    instrucciones

17
Estructuras de control
  • Ciclos
  • 1. while (expresión)
  • Bloque de instrucciones
  • 2. for(expresión expresión expresión)
  • Bloque de instrucciones
  • 3. foreach VAR (ARRAY) Bloque de instrucciones
  • Se obteniene cada uno de los valores que contiene
    ARRAY y los vamos dejando en la variable VAR.
    Ejemplo
  • _at_Alumnos(Hugo",Paco",Luis")
  • foreach Alumno (_at_Alumnos)
  •    print Alumno "\n"  

18
Subrutinas
  • La sintaxis para declarar una subrutina es
  •  sub Nombre_subrutina Bloque de instrucciones
  • Ejemplo  
  • sub Saludo     print  "HOLA Mundo\n"  
  • La llamada a la subrutina la haríamos usando  
  • do Nombre_subrutina()
  • Nombre_subrutina

19
Subrutinas
  • Las dos formas anteriores producen el mismo
    resultado. Sin embargo al utilizar do, siempre
    hay que poner los paréntesis. Si queremos pasar
    argumentos debemos pasar los argumentos entre
    estos paréntesis, y estos serán almacenados en el
    array de escalares _at_, es decir para saber el
    número y el valor de los argumentos pasados a una
    subrutina hay que leer de este array predefinido.
  • Ejemplo
  •   sub imprime      
  • local (cadena)_at__
  •     print cadena  
  •    
  • imprime ("Hola Mundo \n")

20
Subrutinas
  • También podemos devolver explícitamente un
    valor usando return, como en C.

21
Búsqueda de Patrones en texto
  • Las expresiones regulares nos permiten
    evaluar o comparar la existencia de un patrón de
    búsqueda en una cadena o un valor determinado.
  • Estas se utilizan para buscar patrones.
  • Para buscar y reemplazar dicho patrón.

22
Evaluación y Sustitución de Patrones en texto

23
Evaluación y Sustitución de Patrones en texto
  • Formatos
  • También es posible utilizar formatos para
    generalizar las búsquedas y evaluaciones
  • En el caso de las evaluaciones
  • a /nom/
  • Podemos utilizar el formato i
  • a /nom/i
  • Esta opción permite realizar la evaluación entre
    la variable y el patrón sin importar minúsculas o
    mayúsculas.

24
Evaluación y Sustitución de Patrones en texto
  • En el caso de las sustituciones
  • a s/p/r/
  • Podemos utilizar los siguientes formatos
  • a) i
  • a s/p/r/i
  • Esta opción permite realizar la sustitución
    entre la variable y el patrón sin importar
    minúsculas o mayúsculas.
  • b) g
  • a s/p/r/g
  • Esta opción permite realizar la sustitución
    entre la variable y el patrón en todas las
    apariciones del patrón. En caso contrario solo se
    realiza en la primera aparición.
  • c) e
  • a s/p/r/e
  • Esta opción permite evaluar sustitución
    (en este caso r) con valores devueltos por una
    función.

25
Evaluación y Sustitución de Patrones en texto
  • Patrones de traducción
  • Aquí se comparan uno a uno los caracteres del
    patrón de búsqueda con los de la cadena de
    sustitución. Si una ocurrencia coincide con uno
    de los caracteres del patrón se intercambia por
    su correspondiente en la cadena del patrón de
    sustitución. La sintaxis  
  •  
  • variable tr/(patrón de búsqueda)/(cadena_a_tra
    ducir)
  • Ejemplo
  • for(i1i)
  •    
  •     if( var /hola/ )  
  •    print "Se ha encontrado la cadena
    hola'"  

26
Evaluación y Sustitución de Patrones en texto
  • Supongamos que se tiene el siguiente arreglo
  • Los amigos de mis amigos son mis amigos
  • while ()    
  •     var s/amigos//g    
  • print
  •  
  • Esto nos imprimiría lo siguiente
  • Los de mis son mis

27
Evaluación y Sustitución de Patrones en texto
  • Supongamos el siguiente ejemplo
  • while ()    
  •     var tr/los/123/    
  • print
  •  
  • Esto nos imprimiría lo siguiente
  • 123 amig2s de mis amig2s s2n mis amig2s

28
Evaluación y Sustitución de Patrones en texto
  • Supongamos el siguiente ejemplo
  • while ()    
  •     var tr/los/12/    
  • print
  •  
  • Esto nos imprimiría lo siguiente
  • 122 amig22 de mi2 amig22 22n mis amig22

29
Evaluación y Sustitución de Patrones en texto
  • Caracteres Especiales.
  • Comienzo de línea. Con este carácter
    expresamos el comienzo de una cadena. Por ejemplo
    supongamos que se quiere imprimir una variable si
    en su parte inicial se encuentra la cadena
    Prefijo'  
  • if(var  /Prefijo/)    
  •   print var    

30
Evaluación y Sustitución de Patrones en texto
  • Caracteres Especiales.
  • Final de línea. Este expresa el final de una
    cadena o un registro de caracteres. Así, si
    deseamos escribir una variable si en su parte
    final contiene la cadena sufijo
  •   if(var /sufijo/)           print 
    var 

31
Evaluación y Sustitución de Patrones en texto
  • corchetes. Se utilizan para delimitar un
    conjunto de caracteres que pueden encontrarse
    dentro de la variable. Ejemplo, queremos
    sustituir todas las ocurrencias de los números 1
    ó 4 por la cadena 'X_X'
  •           var '1sdffd3d546y547'      
  •      var  s/14/X_X/g    
  • print var
  • la salida es
  •   X_Xsdffd3d5X_X6y5X_X7

32
Evaluación y Sustitución de Patrones en texto
  • Cuando se utiliza el carácter con los
    corchetes, queremos decir la no existencia de la
    cadena que está entre los corchetes. Ejemplo
  •           var '1s4s547'    
  •        var s/14/X_X/g     
  •       print var
  • La salida   1X_X4X_XX_X4X_X

33
Evaluación y Sustitución de Patrones en texto
  • -
  • Guión. Mediante este carácter denotamos un
    rango de caracteres o números. Por ejemplo, para
    sustituir todas las palabras minúsculas por
    palabras mayúsculas
  •  var tr/a-z/A-Z/

34
Evaluación y Sustitución de Patrones en texto
  • Llaves. Dentro de una expresión regular
    representa la longitud de una cadena. Por ejemplo
    una cadena de caracteres con tres caracteres ? se
    expresa de la siguiente manera  /?3/

35
Evaluación y Sustitución de Patrones en texto
  • .
  • punto. Sirve para representar cualquier
    carácter. Por ejemplo, si queremos sustituir los
    cuatro primeros caracteres de una cadena   
  •         var Jorge Gutiérrez'      
  •      var s/.5/Claudio/  
  •          print var
  • La salida  Claudio Gutiérrez

36
Evaluación y Sustitución de Patrones en texto
  • \d
  • Este caracter reemplaza la existencia de un
    dígito. Ejemplo queremos sustituir todos los
    dígitos de una variable por el carácter XXX
  •        var '1Gato Volador2'          
  • var s/\d/XXX/   
  •       print var
  • la salida por pantalla es  XXXGato
    VoladorXXX

37
Evaluación y Sustitución de Patrones en texto
  • Los siguientes caracteres tienen un
    significado paralelo al anterior por lo que no se
    darán ejemplos de ellos  
  • \w . Expresa un carácter alfanumérico.
  • \b . Expresa un espacio en blanco.
  • \t . Significa un tabulador.
  • \r . Expresa un retorno de carro.
  • \n . Significa un final de línea.
  • \s . Expresa un separador de cadena de
    caracteres.

38
Evaluación y Sustitución de Patrones en texto
  • Los anteriores caracteres especiales, en su
    formato en mayúsculas significan lo contrario,
    esto es, \W expresa un carácter no alfanumérico,
    \D expresa un valor no numérico.

39
Evaluación y Sustitución de Patrones en texto
  • Por último el carácter \ permite referenciar
    un carácter especial en PERL como un carácter
    normal, así por ejemplo la siguiente sentencia
  •      var s/\\d/XXX/g
  • Nos permite sustituir todas las ocurrencias
    de la cadena \d por XXX. Si dentro de la
    expresión hubiese estado escrito solo \d, la
    sustitución se realizaría en todos los valores
    numéricos.
  • En general ocurre lo mismo con el resto de
    caracteres especiales de PERL.

40
Operadores de archivo
  • Estos operadores se emplean para verificar
    en el sistema operativo los permisos de un
    archivo, o su naturaleza de ejecución, etc. A
    continuación se muestra los diferentes
    operadores
  • -r indica si el archivo tiene permiso de
    lectura. 
  • -W indica si el archivo tiene permiso de
    escritura.
  • -T indica si el archivo es de tipo texto
  • -e indica si el archivo existe.
  • -z indica si el archivo tiene tamaño 0. 
  • -s indica si el archivo es mayor que 0. 
  • -f indica si el archivo es plano.
  • -d indica si se trata de un directorio. 
  • -M indica el número dias después de la última
    modificación 
  • -B indica si el archivo es binario.  
  • -t indica si el archivo esta abierto en un
    terminal.

41
Variables predefinidas
  • Los siguientes nombres tienen un
    significado especial en PERL sólo incluiremos los
    más frecuentes, para una información más
    detallada consulte el manual de usuario
  • "_"  contiene el contenido del último registro
    leído de un fichero.
  • ". " contiene el número de la última línea leída
    de un fichero.
  • "/ " separador de campo para la entrada.
  • ","  separador de campo para la salida,
    aplicable a print.
  • "\ " separador de registro para la salida,
    aplicable a print.
  • "" contiene el nombre del formato o report
    definido para la salida actual.
  • "" contiene el nombre de la cabecera de formato
    o report definido para la salida actual.
  • "" número de proceso perl scripts que se esta
    ejecutando actualmente.
  • "" representa el valor de la última cadena de
    caracteres comparada exitosamente.
  • "" y "'" estos dos términos se utilizan
    conjuntamente para separar cadenas de caracteres
    comparadas exitosamente.

42
Variables predefinidas
  • "!" contiene el valor actual de ERRNO, es decir,
    el último error acontecido.
  • "0" contiene el nombre del fichero que hemos
    dado a nuestro perl script.
  • "" contiene el valor del primer indice de una
    array de escalares, por defecto es 0.
  • "lt" uid real del proceso actual.
  • "gt" uid efectivo del proceso actual.
  • "(" gid real del proceso actual.
  • ")" gid efectivo del proceso actual.
  • _at_ARGV contiene los parámetros pasados a nuestro
    perl script.
  • ENV array asociativo que contiene las variables
    de entorno bajo el que se ejecuta nuestro perl
    script.

43
Ejemplo
  • open(Entrada,'prueba.prb') die "!\n"
  •  while(ltEntradagt)  
  •       if( _ /exito/ )  
  •    print "Se ha encontrado
    la cadena exito'"
  •  
  • Abre un fichero prueba.prb de tipo texto y
    lo asigna a la variable Entrada, Con el while
    recorrer todo el contenido del fichero.
  • La variable _ ( guarda el contenido de la
    última línea del fichero definido como
    entrada)Verifica a través del if si dentro del
    registro existe una cadena igual a 'exito'.
Write a Comment
User Comments (0)
About PowerShow.com