Sistema Operativo UNIX - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Sistema Operativo UNIX

Description:

Perl (Practical Extraction and Report Language) fue ... Perl combina aspectos de utilitarios tales como grep, tr, sed y awk, adem s de ... Input del teclado ... – PowerPoint PPT presentation

Number of Views:549
Avg rating:3.0/5.0
Slides: 29
Provided by: antoniof1
Category:

less

Transcript and Presenter's Notes

Title: Sistema Operativo UNIX


1
Sistema Operativo UNIX
  • Lección 10 Programación en Perl Parte I
  • Prof. Antonio F. Huertas

2
Qué es Perl?
  • Perl (Practical Extraction and Report Language)
    fue desarrollado por Larry Wall en 1987 como un
    lenguaje que ocuparía un espacio intermedio entre
    los lenguajes de scripts de UNIX y lenguajes
    compilados tradicionales tales como C y C.
  • Perl combina aspectos de utilitarios tales como
    grep, tr, sed y awk, además de construcciones de
    lenguajes tales como el Bourne Shell y C.
  • Perl es muy utilizado como lenguaje para
    desarrollo de sistemas de información para el
    Web, programas bioinformáticos y programas para
    ayudar a administradores de sistemas.

3
Qué es Perl? (Cont.)
  • En Perl no es necesario compilar el código fuente
    de un programa para poder ejecutarlo (al igual
    que en los lenguajes interpretados y los
    scripts).
  • Sin embargo, los programas son compilados en RAM
    justo antes de ejecutarse, así que ejecutan más
    rápido que si fueran interpretados de la forma
    tradicional.
  • Lo anterior quiere decir que un programa en Perl
    es más rápido que un script del shell o de awk y
    que cualquier mensaje de error de sintaxis se
    muestra antes de ejecutar el programa.

4
Fundamentos
5
Ejemplo de un programa
  • !/usr/bin/perl
  • km_to_mi.pl
  • This program computes the equivalent miles to
  • the number of kilometers entered by the user.
  •  
  • print ("Enter the amount of kilometers ")
  • kilometers ltSTDINgt
  • chomp (kilometers)
  • miles kilometers 1.609
  • print ("The equivalent amount in miles is
    miles\n")

6
Conceptos básicos
  • Los programas en Perl comienzan con una línea que
    indica donde está el interpretador. Esta línea es
    una de las siguientes
  • !/usr/bin/perl
  • !/bin/perl
  • Esto permite ejecutar el script escribiendo el
    nombre del programa en la línea de comandos (si
    el script es ejecutable use chmod x
    scriptname).
  • Los programas en Perl terminan normalmente en .pl
  • Los comentarios se indican de la misma forma que
    en los scripts del shell
  • Esto es un comentario

7
Variables y enunciados de asignación
  • No es necesario declarar las variables.
  • El nombre de toda variable que represente un
    valor simple (escalar), tales como un valor
    numérico o un valor alfanumérico, se escribe
    siempre precedido de . Por ejemplo,
  • x 5
  • y x 20
  • x
  • w x y
  • No hay problemas con colocar espacios entre los
    operandos y los operadores en un enunciado de
    asignación.

8
Variables y enunciados de asignación (cont.)
  • Como en el shell, las variables son todas del
    tipo string y se convierten a numéricas de
    acuerdo a la operación que se realiza con ellas.
  • Los strings se escriben normalmente entre
    comillas dobles.
  • Si un string se escribe entre comillas sencillas,
    se inhibe la interpretación de variables y de
    secuencias de escape (como en el shell).
  • Si una variable no se inicializa, su valor es
    undef.
  • El valor undef corresponde al string nulo o al
    cero (0), dependiendo del uso.

9
Output a la pantalla
  • La función print permite mostrar datos en la
    pantalla. Por ejemplo,
  • print("Me encanta UNIX!\n")
  • Fíjese el uso de "\n". Además de "\n" , Perl
    reconoce otras secuencias de escape de C.
  • Los paréntesis en las llamadas a funciones son
    opcionales en Perl, así que la instrucción
    anterior se podría escribir así
  • print "Me encanta UNIX!\n"
  • Perl provee también la función printf que permite
    mostrar valores con formato. Por ejemplo
  • printf("15s 5d 10.2f\n", s, n, r)

10
Input del teclado
  • Para obtener un dato entrado por el usuario y
    colocarlo en una variable se usan las siguientes
    instrucciones
  • variable ltSTDINgt
  • chomp(variable)
  • ltSTDINgt es un filehandle (nombre lógico de
    archivo) que representa el standard input.
  • La funcion chomp remueve el "\n" del contenido de
    la variable. Es necesaria porque el valor
    entrado por el usuario, incluyendo el "\n" es
    almacenado en la variable y hay que removerlo.
  • Las instrucciones anteriores se pueden combinar
    así
  • chomp(variable ltSTDINgt)

11
Operadores
  • Los operadores aritméticos son los mismos que en
    C (, -, , /, , , --), pero se incluye el
    operador para exponenciación.
  • El operador de concatenación es el punto. Por
    ejemplo
  • full_name first_name . last_name
  • La x es usada como operador para repetición de
    strings. Por ejemplo
  • print("casa" x 3 . "\n") produce 'casa casa
    casa '
  • Se permite la sustitución de comandos. Por
    ejemplo,
  • the_date date

12
Operadores (cont.)
  • En cuanto a los operadores relaciones, los
    números son comparados como en C lt, gt, , !,
    lt, gt.
  • Los alfanuméricos son comparados con operadores
    semejantes a los del shell lt, gt, eq, ne, le,
    ge (pero sin el guión). Fíjese que el shell
    usaba estos operadores para comparar números pero
    Perl los usa para comparar strings.
  • Los operadores lógicos son (and), (or) y !
    (not).
  • Perl tiene el operador condicional de C (?),
    como muestra este ejemplo
  • greater (a gt b)? a b
  • Los valores true y false se definen como en C.

13
Funciones para strings
14
Funciones para strings
  • Uno de los puntos fuertes de perl son las
    funciones para el manejo de strings.
  • Algunas funciones para el manejo de strings son
    length, index, substr, uc, ucfirst, lc, lcfirst.
  • La función length indica la cantidad de
    caracteres en un string.
  • La función index indica el índice de la primera
    ocurrencia de un substring dentro de un string
    (asumiendo que el primer índice es 0). Si el
    substring no se encuentra, se devuelve -1.

15
Funciones para strings (cont.)
  • La función substr puede ser usada para extraer,
    reemplazar o para insertar un substring.
  • Las funciones uc y lc son usadas para convertir
    un string a letras mayúsculas o minúsculas,
    respectivamente.
  • Las funciones ucfirst y lcfirst son usadas para
    convertir el primer caracter del string a letra
    mayúscula o minúscula, respectivamente.

16
Funciones para strings (cont.)
  • Algunos ejemplos, asumiendo
  • word "perl language"
  • Para ver la longitud del string
  • print(length(word). "\n") 13
  • Para ver el índice donde comienza el substring
    "lang"
  • print(index(word, "lang"). "\n") 5
  • Para ver el substring que comienza en el índice 5
    y que contiene 3 caracteres
  • print(substr(word, 5, 3). "\n") lan

17
Funciones para strings (cont.)
  • Para ver el substring que comienza en la 3ra
    posición de derecha a izquierda y que contiene 2
    caracteres
  • print(substr(word, -3, 2). "\n") ag
  • Para reemplazar el substring que comienza en la
    posición 5 y que contiene 8 caracteres por el
    substring "programming".
  • substr(word, 5, 8) "programming"
  • print("word\n") perl programming

18
Funciones para strings (cont.)
  • Para insertar el substring "abc" en el string
    original a partir del índice 2, sin reemplazar
    caracteres
  • substr(word, 2, 0) "abc"
  • print("word\n") peabcrl programming
  • Para mostrar el string con letras mayúsculas
  • print(uc(word). "\n")
  • PEABCRL PROGRAMMING
  • Para mostrar el string con la primera letra
    mayúscula
  • print(ucfirst(word). "\n)
  • Peabcrl programming

19
Estructuras de control
20
Estructuras de control
  • Perl provee estructuras de control como los que
    se encuentran en C.
  • Sin embargo, la sintaxis de estos enunciados
    requiere siempre el uso de las llaves, aún cuando
    sólo haya un enunciado en el cuerpo de la
    estructura de control.

21
Estructuras de control (cont.)
  • Enunciado if para una alternativa
  • if (condición)
  • enunciado(s)
  • Enunciado if para dos alternativas
  • if (condición)
  • enunciado(s)
  • else
  • enunciado(s)
  • Enunciado if para múltiples alternativas
  • if (condición)
  • enunciados
  • elsif (condición)
  • enunciados
  • else
  • enunciados

22
Estructuras de control (cont.)
  • Ejemplo de if
  • if (promedio gt 90)
  • nota "A"
  • elsif (promedio gt 80)
  • nota "B"
  • elsif (promedio gt 70)
  • nota "C"
  • else
  • nota "F"

23
Estructuras de control (cont.)
  • Enunciado unless
  • unless (condición)
  • enunciado(s)
  • Ejemplo usando unless
  • unless (age lt 18)
  • print (Adult.)
  • Equivalente a
  • if (! condición)
  • enunciado(s)
  • Ejemplo usando if
  • if (age gt 18)
  • print (Adult.)

24
Estrucuturas de control (cont.)
  • Enunciado while
  • while (condición)
  • enunciado(s)
  • Enunciado until
  • until (condición)
  • enunciado(s)
  • Enunciado do-while
  • do
  • enunciado(s)
  • while (condición)
  • Enunciado do-until
  • do
  • enunciado(s)
  • until (condición)

25
Estrucuturas de control (cont.)
  • Enunciado for
  • for (inicialización comparación actualización)
  • enunciado(s)
  •  
  • for variable (valorInicial..valorFinal)
  • enunciado(s)
  • Otra estructura de control es foreach. Es usada
    para recorrer arreglos y se discutirá en la
    próxima lección.

26
Estrucuturas de control (cont.)
  • Ejemplos de ciclos
  • x 1
  • while (x lt 10)
  • print(2 x . " ")
  • x
  • for (x 1 x lt 10 x)
  • print(2 x . " ")
  • for x (1..10)
  • print(2 x . " ")

27
Estructuras de control (cont.)
  • Cuando se tiene una instrucción en el cuerpo de
    algunas estructuras de control, se puede usar la
    siguiente sintaxis
  • enunciado if (condicion)
  • enunciado unless (condicion)
  • enunciado while (condicion)
  • enunciado until (condicion)
  • Por ejemplo
  • print "Adult.\n" unless age lt 18
  • print "Adult.\n" if age gt 18
  • print "line\n" while (line ltINDATAgt)

28
Para más información
  • Consulte los siguientes capítulos de Learning
    Perl, 2da edición
  • Chapter 1 Introduction
  • Chapter 2 Scalar Data
  • Chapter 4 Control Structures
  • Chapter 15 Other Data Transformations
  • Sec. 15.1 Finding a Substring
  • Sec. 15.2 Extracting and Replacing a Substring
Write a Comment
User Comments (0)
About PowerShow.com