Publicado el 19 de Diciembre del 2018
674 visualizaciones desde el 19 de Diciembre del 2018
1,9 MB
438 paginas
Creado hace 11a (21/05/2012)
Principios de Programación Imperativa, Funcional y Orientada a
Objetos Una Introducción en Perl/Una Introducción a Perl
Casiano R. León 1
31 de marzo de 2012
1DEIOC Universidad de La Laguna
Índice general
1. Introducción
1.3. Variables privadas
1.1. Primeros Pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Escalares
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. Contexos Numérico y de Cadena: Conversiones . . . . . . . . . . . . . . . . . .
1.2.4. Variables Mágicas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Lectura de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. La Lógica de Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1. Operadores Lógicos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2. Operadores de Comparación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Algunas Sentencias de Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Depuración de errores
1.7. Una Brevísima Introducción a las Expresiones Regulares . . . . . . . . . . . . . . . . .
1.8. Un Programa Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9. Breve Introducción al Manejo de Excepciones . . . . . . . . . . . . . . . . . . . . . . .
1.10. Autentificación Automática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.11. Uso de Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12. Práctica: Area de un Círculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13. Arrays y Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.2. Operadores de Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.4. Práctica: Fichero en Orden Inverso . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5. Práctica: En Orden ASCIIbético . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.6. Práctica: Sin Distinguir Case . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.7. Práctica: Indexación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.8. Práctica: Postfijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.9. Práctica: Ordenación Internacional . . . . . . . . . . . . . . . . . . . . . . . . .
1.14. Hashes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.1. Acceso a los elementos de un hash . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.2. El operador flecha grande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.3. Asignación de Hashes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.4. Troceado de un hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.5. Inversión de un Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.6. Las funciones keys y values . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.7. La función each . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.8. Las funciones delete y exists . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.9. Interpolación de hashes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.10.Obtener el Conjunto de Elementos de una Lista . . . . . . . . . . . . . . . . . .
1.14.11.Bloqueo de las Claves de un Hash . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.12.Práctica: Ordenar por Calificaciones . . . . . . . . . . . . . . . . . . . . . . . .
1
14
14
23
23
25
29
30
33
33
33
34
35
36
41
42
44
48
49
50
53
54
54
60
67
69
70
70
71
72
74
74
74
75
75
76
76
76
77
78
78
79
79
80
1.15. Subrutinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.1. Definición de subrutinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.2. Argumentos y valores de retorno . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.3. Otros modos de llamar a una subrutina . . . . . . . . . . . . . . . . . . . . . .
1.15.4. Tipo de objeto y ámbito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.5. La declaración our . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.6. El uso de local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.7. Argumentos con Nombre
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.8. Aliasing de los parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.9. Contexto de la llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.10.¿Quién llamó a esta rutina? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.11.Calculando el Máximo de Forma Genérica . . . . . . . . . . . . . . . . . . . . .
1.15.12.Ejercicio: Prioridad de Operaciones . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.13.Ejercicio: Significados de la Coma . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.14.Práctica: Polares a Cartesianas . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.15.Práctica: Postfijo y Subrutina . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
82
82
85
85
86
88
90
91
91
93
94
94
95
96
96
2. Entrada /Salida
97
97
2.1. El Operador Diamante y el Manejador de Ficheros ARGV . . . . . . . . . . . . . . . . .
99
2.2. El manejador ARGVOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
2.3. Uso de Perl desde la Línea de Comandos: Modificación en Múltiples Ficheros
. . . . .
2.4. El Manejador de Ficheros DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.5. Operaciones sobre Ficheros
2.6. Práctica: Ficheros Grandes y Viejos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.7. Ficheros Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.8. La función localtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
2.9. Directorios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.10. Operaciones con ficheros, links y directorios . . . . . . . . . . . . . . . . . . . . . . . . 114
2.11. Renombrar Ficheros
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2.12. Práctica: Descenso Recursivo en Subdirectorios . . . . . . . . . . . . . . . . . . . . . . 119
3. Expresiones Regulares
122
3.1. Un ejemplo sencillo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.2. Copia y sustitución simultáneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.3. Variables especiales después de un emparejamiento . . . . . . . . . . . . . . . . . . . . 123
3.4. El uso de $1 dentro una expresión regular . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.5. Ambito automático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.6. Expresiones regulares abreviadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.7. Listas y ExpReg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.8. Map y las expresiones regulares
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.9. Opciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.10. La opción /m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.11. La opción /s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.12. El Modificador /g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3.13. La opción /x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3.14. Interpolación en los patrones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.15. RegExp no “Greedy” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.16. Negaciones y operadores no greedy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.17. Algunas extensiones
3.17.1. Comentarios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.17.2. Paréntesis de agrupamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.17.3. Operador de predicción positivo
. . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.17.4. Operador de predicción negativo . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.18. Secuencias de números de tamaño fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
2
3.19. El ancla \ G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.20. Palabras Repetidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.21. Análisis de cadenas con datos separados por comas . . . . . . . . . . . . . . . . . . . . 134
3.22. Número de substituciones realizadas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.23. Evaluación del remplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Comentarios de: Principios de Programación Imperativa, Funcional y Orientada a Objetos - Una Introducción en Perl (0)
No hay comentarios