El documento proporciona una introducción al lenguaje de programación Perl. Explica que Perl es un lenguaje interpretado creado por Larry Wall en 1987 para procesar texto y administrar sistemas UNIX. Describe los tipos básicos de datos en Perl como escalares, arrays y hashes, y cubre conceptos como variables, operadores, control de flujo, subrutinas y funciones.
El documento describe el lenguaje de programación Perl, incluyendo su historia, características y aplicaciones. Perl fue creado por Larry Wall en 1987 y se ha utilizado principalmente para la manipulación de textos y administración de sistemas. El lenguaje ofrece flexibilidad y portabilidad a través de características como variables escalares, arreglos, subrutinas, expresiones regulares y la capacidad de programación orientada a objetos y por módulos. Perl se ha aplicado a sistemas operativos, páginas web dinámicas y otras
El documento describe la estructura de un programa en PROLOG, incluyendo hechos, reglas, variables, operadores, predicados, estructuras, interpretación de cláusulas, y entrada/salida. PROLOG es un lenguaje de programación lógica que representa conocimiento mediante relaciones entre objetos expresadas como hechos y reglas.
Sebastien Thomas, System Architect at Coyote Amerique, gave a presentation on operator frameworks. His talk covered how Operator SDK can be used to create Kubernetes Operators with Go.
Este documento presenta el método de backtracking para resolver problemas. Primero, describe el método general, incluyendo la representación del árbol de soluciones y las funciones principales. Luego, analiza la complejidad temporal, que suele ser factorial o exponencial. Finalmente, menciona ejemplos como el problema de la mochila 0/1 y la asignación.
1) El documento describe las operaciones básicas para crear y manipular bases de datos en MySQL, incluyendo la creación de tablas, tipos de datos, restricciones, claves primarias, claves ajenas y vistas.
2) Se explican comandos como CREATE TABLE, INSERT, ALTER TABLE, DROP TABLE, CREATE VIEW y cómo añadir y modificar columnas, restricciones y otros atributos de las tablas.
3) También cubre la creación de vistas simples y complejas a partir de una o más tablas y su manipulación median
El documento describe los grafos, incluyendo su definición, tipos (orientados y no orientados), operaciones como adyacencia e incidencia, y formas de representarlos mediante matrices de adyacencia. También presenta ejemplos de grafos ponderados y cómo modelar problemas como el del agente viajero usando grafos. Finalmente, muestra código C++ para implementar una representación secuencial de grafos mediante listas y matrices.
Introduction to Helm, the package manager for Kubernetes: Create and use Kubernetes charts. Deploy releases on a cluster ... and rollback your releases. Get for instance Prometheus up and running with just a single command.
El documento describe el lenguaje de programación Perl, incluyendo su historia, características y aplicaciones. Perl fue creado por Larry Wall en 1987 y se ha utilizado principalmente para la manipulación de textos y administración de sistemas. El lenguaje ofrece flexibilidad y portabilidad a través de características como variables escalares, arreglos, subrutinas, expresiones regulares y la capacidad de programación orientada a objetos y por módulos. Perl se ha aplicado a sistemas operativos, páginas web dinámicas y otras
El documento describe la estructura de un programa en PROLOG, incluyendo hechos, reglas, variables, operadores, predicados, estructuras, interpretación de cláusulas, y entrada/salida. PROLOG es un lenguaje de programación lógica que representa conocimiento mediante relaciones entre objetos expresadas como hechos y reglas.
Sebastien Thomas, System Architect at Coyote Amerique, gave a presentation on operator frameworks. His talk covered how Operator SDK can be used to create Kubernetes Operators with Go.
Este documento presenta el método de backtracking para resolver problemas. Primero, describe el método general, incluyendo la representación del árbol de soluciones y las funciones principales. Luego, analiza la complejidad temporal, que suele ser factorial o exponencial. Finalmente, menciona ejemplos como el problema de la mochila 0/1 y la asignación.
1) El documento describe las operaciones básicas para crear y manipular bases de datos en MySQL, incluyendo la creación de tablas, tipos de datos, restricciones, claves primarias, claves ajenas y vistas.
2) Se explican comandos como CREATE TABLE, INSERT, ALTER TABLE, DROP TABLE, CREATE VIEW y cómo añadir y modificar columnas, restricciones y otros atributos de las tablas.
3) También cubre la creación de vistas simples y complejas a partir de una o más tablas y su manipulación median
El documento describe los grafos, incluyendo su definición, tipos (orientados y no orientados), operaciones como adyacencia e incidencia, y formas de representarlos mediante matrices de adyacencia. También presenta ejemplos de grafos ponderados y cómo modelar problemas como el del agente viajero usando grafos. Finalmente, muestra código C++ para implementar una representación secuencial de grafos mediante listas y matrices.
Introduction to Helm, the package manager for Kubernetes: Create and use Kubernetes charts. Deploy releases on a cluster ... and rollback your releases. Get for instance Prometheus up and running with just a single command.
Este documento presenta una serie de ejercicios de programación en Python para evaluar la comprensión de los fundamentos del lenguaje. Los ejercicios incluyen cálculos, manipulación de cadenas, listas, diccionarios, funciones y más. Se pide al estudiante que complete cada tarea usando los métodos especificados como imprimir resultados, dividir cadenas, acceder a elementos anidados, crear funciones y más.
Introduction to LaTeX (For Word users)Guy K. Kloss
This document introduces LaTeX, an open-source document preparation system. LaTeX uses TeX as its typesetting engine and allows authors to focus on the content instead of formatting. It offers advantages over Word like portability, flexibility, precise control over formatting, and high quality output, especially for mathematical formulas. The document discusses what LaTeX is, how to pronounce it, its advantages over Word for large projects, and its ability to produce higher quality documents than Word.
Kubernetes Security Best Practices - With tips for the CKS examAhmed AbouZaid
Agenda:
1. Introduction
2. Shift-left and DevSecOps
3. General Security Concepts
4. The 4C’s of Cloud Native Security
5. Kubernetes Security Starter Kit
6. CKS Exam Overview and Tips
Overview:
A dive into Kubernetes Security Best Practices in addition to tips for the Certified Kubernetes Security Specialist (CKS) exam.
The 1-3 sections are for everyone and they will cover the security in the container era. So it doesn’t matter what’s your title or background, they are a good start for anyone.
The 4-6 sections will dive more into Kubernetes security, so probably DevOps engineers and SREs will find that more interesting. But in general anyone interested in Kubernetes security is more than welcome.
This document summarizes the key topics that will be covered in an introduction to Perl programming course on day 2, including types of variables, references, sorting, and object orientation. The schedule outlines times for lectures, breaks and lunch. Resources provided include slides, slideshare, and an online community.
Ruby on Rails is a web application framework that follows the model-view-controller (MVC) pattern and includes everything needed to build database-backed web applications using the Ruby programming language. It aims to make web development more productive by utilizing conventions that reduce the need for configuration and promote reuse of common tasks like connecting to databases. The framework provides models for interacting with the database, views for displaying the user interface, and controllers that handle and respond to user input by manipulating models and rendering views.
Next-Generation Cloud Native Apps with Spring Cloud and KubernetesVMware Tanzu
SpringOne 2021
Session Title: Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Speaker: Ryan Baxter, Staff Software Engineer at VMware
La búsqueda informada o heurística trata de encontrar soluciones de manera más eficiente que las estrategias no informadas mediante el uso de conocimiento previo. El algoritmo A* evalúa los nodos combinando el coste para alcanzar el nodo (g(n)) y el coste estimado de ir al objetivo (h(n)), buscando minimizar f(n)=g(n)+h(n). A* es óptimo si h(n) nunca subestima el coste real, lo que garantiza que f(n) no sobrestime el costo de la soluc
Este documento introduce Apache Cassandra y DataStax OpsCenter. Describe las características clave y ventajas de Cassandra como su arquitectura peer-to-peer, escalabilidad, alta disponibilidad y tolerancia a fallos. También explica los componentes y funciones de OpsCenter para la gestión y el monitoreo visual de Cassandra, incluidos los agentes, el demonio y la interfaz de usuario. El objetivo general es desarrollar un ejemplo teórico para aplicar el concepto de base de datos NoSQL mediante Cassandra.
Este documento contiene información sobre árboles y grafos. Define conceptos como grafo, subgrafo, grado de un vértice, y tipos de grafos como grafos simples, conexos, dirigidos y no dirigidos. También define árboles, árboles de expansión mínimos, y formas de realizar recorridos en árboles como preorden, posorden e inorden. Finalmente, incluye tareas relacionadas con grafos y árboles como determinar caminos, circuitos de Euler, matrices de adyacencia e inc
Este documento trata sobre cadenas en C. Explica cómo se representan las cadenas en C como arreglos unidimensionales de caracteres terminados por un carácter nulo. También cubre temas como la lectura de cadenas desde el teclado, las bibliotecas estándar ctype.h y string.h para la manipulación de cadenas, y la conversión de tipos entre cadenas y otros tipos de datos en C. Finalmente, incluye algunos ejercicios de práctica sobre estos temas.
La sentencia GRANT permite otorgar privilegios de acceso a bases de datos y tablas a usuarios. Se especifican los privilegios, la base de datos y tabla, y el usuario al que se otorgan. La sentencia REVOKE quita los privilegios de acceso previamente otorgados, especificando el privilegio, objeto y usuario del que se revocan.
This document provides a cheat sheet for HTML syntax and tags. It lists common HTML tags like <html>, <head>, <title>, <body>, <p>, <img>, <a>, <table>, <tr>, <td>, <ul>, <ol>, <li> and describes their basic functions. It also includes tags and syntax for links, lists, tables, forms, frames and special characters. The cheat sheet acts as a quick reference guide for HTML elements and their usage.
The Kubernetes Operator Pattern - ContainerConf Nov 2017Jakob Karalus
The document discusses the operator pattern in Kubernetes for managing stateful services. It describes how operators define custom APIs using CustomResourceDefinitions and create controllers that react to changes in the API to manage applications and infrastructure. Operators allow automating tasks like backups, scaling, healing and configuration that are difficult to do at the application level alone. Some examples of using operators for services like Kafka and Elasticsearch are provided.
This document provides an introduction and overview of DBIx::Class, an ORM (object relational mapper) for Perl. It discusses setting up tables for an authors and books example database, and performing CRUD (create, read, update, delete) operations both manually using SQL and using DBIx::Class. It also covers creating models with Schema::Loader, debugging, overloading result and result set classes, and inflating/deflating columns.
This document contains sample questions from an Oracle Database SQL Expert exam. It includes 21 multiple choice questions about SQL concepts like joins, aggregation, regular expressions, and data dictionary views. The questions are testing knowledge of SQL syntax, functions, and techniques like hierarchical queries, inline views, and subqueries.
This document discusses how to secure a Kubernetes platform. It covers setting up authentication and authorization using RBAC and certificates. It also discusses implementing network policies and pod security policies to restrict traffic and resources. Additional topics include integrating Vault for secrets management and using admission controllers and auditing to intercept and modify API requests for security purposes.
Este documento describe lenguajes regulares, expresiones regulares y gramáticas regulares. Explica que los lenguajes regulares contienen regularidades o repeticiones y pueden definirse como la unión, concatenación o cerradura de Kleene de otros lenguajes regulares. También define expresiones regulares y gramáticas regulares, y explica cómo estas pueden usarse para representar lenguajes regulares.
1) Los lenguajes regulares son aquellos cuyas palabras contienen regularidades o repeticiones de componentes.
2) Un lenguaje es regular si puede expresarse como la unión, concatenación o cerradura de Kleene de otros lenguajes regulares.
3) Las expresiones regulares representan lenguajes mediante símbolos y operaciones como unión, concatenación y cerradura.
Este documento describe lenguajes regulares, expresiones regulares y gramáticas regulares. Explica que un lenguaje regular puede representarse mediante un autómata finito o una expresión regular. También define formalmente lenguajes regulares, expresiones regulares y gramáticas regulares, y discute la equivalencia entre autómatas finitos y expresiones regulares.
El documento describe la instalación y uso del sistema de gestión de contenidos Joomla. Explica cómo instalar Joomla, gestionar y organizar contenidos a través de secciones, categorías y artículos, e instalar extensiones para mejorar las funcionalidades. También cubre temas como diseño, menús de navegación y funciones adicionales.
Este documento presenta una serie de ejercicios de programación en Python para evaluar la comprensión de los fundamentos del lenguaje. Los ejercicios incluyen cálculos, manipulación de cadenas, listas, diccionarios, funciones y más. Se pide al estudiante que complete cada tarea usando los métodos especificados como imprimir resultados, dividir cadenas, acceder a elementos anidados, crear funciones y más.
Introduction to LaTeX (For Word users)Guy K. Kloss
This document introduces LaTeX, an open-source document preparation system. LaTeX uses TeX as its typesetting engine and allows authors to focus on the content instead of formatting. It offers advantages over Word like portability, flexibility, precise control over formatting, and high quality output, especially for mathematical formulas. The document discusses what LaTeX is, how to pronounce it, its advantages over Word for large projects, and its ability to produce higher quality documents than Word.
Kubernetes Security Best Practices - With tips for the CKS examAhmed AbouZaid
Agenda:
1. Introduction
2. Shift-left and DevSecOps
3. General Security Concepts
4. The 4C’s of Cloud Native Security
5. Kubernetes Security Starter Kit
6. CKS Exam Overview and Tips
Overview:
A dive into Kubernetes Security Best Practices in addition to tips for the Certified Kubernetes Security Specialist (CKS) exam.
The 1-3 sections are for everyone and they will cover the security in the container era. So it doesn’t matter what’s your title or background, they are a good start for anyone.
The 4-6 sections will dive more into Kubernetes security, so probably DevOps engineers and SREs will find that more interesting. But in general anyone interested in Kubernetes security is more than welcome.
This document summarizes the key topics that will be covered in an introduction to Perl programming course on day 2, including types of variables, references, sorting, and object orientation. The schedule outlines times for lectures, breaks and lunch. Resources provided include slides, slideshare, and an online community.
Ruby on Rails is a web application framework that follows the model-view-controller (MVC) pattern and includes everything needed to build database-backed web applications using the Ruby programming language. It aims to make web development more productive by utilizing conventions that reduce the need for configuration and promote reuse of common tasks like connecting to databases. The framework provides models for interacting with the database, views for displaying the user interface, and controllers that handle and respond to user input by manipulating models and rendering views.
Next-Generation Cloud Native Apps with Spring Cloud and KubernetesVMware Tanzu
SpringOne 2021
Session Title: Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes
Speaker: Ryan Baxter, Staff Software Engineer at VMware
La búsqueda informada o heurística trata de encontrar soluciones de manera más eficiente que las estrategias no informadas mediante el uso de conocimiento previo. El algoritmo A* evalúa los nodos combinando el coste para alcanzar el nodo (g(n)) y el coste estimado de ir al objetivo (h(n)), buscando minimizar f(n)=g(n)+h(n). A* es óptimo si h(n) nunca subestima el coste real, lo que garantiza que f(n) no sobrestime el costo de la soluc
Este documento introduce Apache Cassandra y DataStax OpsCenter. Describe las características clave y ventajas de Cassandra como su arquitectura peer-to-peer, escalabilidad, alta disponibilidad y tolerancia a fallos. También explica los componentes y funciones de OpsCenter para la gestión y el monitoreo visual de Cassandra, incluidos los agentes, el demonio y la interfaz de usuario. El objetivo general es desarrollar un ejemplo teórico para aplicar el concepto de base de datos NoSQL mediante Cassandra.
Este documento contiene información sobre árboles y grafos. Define conceptos como grafo, subgrafo, grado de un vértice, y tipos de grafos como grafos simples, conexos, dirigidos y no dirigidos. También define árboles, árboles de expansión mínimos, y formas de realizar recorridos en árboles como preorden, posorden e inorden. Finalmente, incluye tareas relacionadas con grafos y árboles como determinar caminos, circuitos de Euler, matrices de adyacencia e inc
Este documento trata sobre cadenas en C. Explica cómo se representan las cadenas en C como arreglos unidimensionales de caracteres terminados por un carácter nulo. También cubre temas como la lectura de cadenas desde el teclado, las bibliotecas estándar ctype.h y string.h para la manipulación de cadenas, y la conversión de tipos entre cadenas y otros tipos de datos en C. Finalmente, incluye algunos ejercicios de práctica sobre estos temas.
La sentencia GRANT permite otorgar privilegios de acceso a bases de datos y tablas a usuarios. Se especifican los privilegios, la base de datos y tabla, y el usuario al que se otorgan. La sentencia REVOKE quita los privilegios de acceso previamente otorgados, especificando el privilegio, objeto y usuario del que se revocan.
This document provides a cheat sheet for HTML syntax and tags. It lists common HTML tags like <html>, <head>, <title>, <body>, <p>, <img>, <a>, <table>, <tr>, <td>, <ul>, <ol>, <li> and describes their basic functions. It also includes tags and syntax for links, lists, tables, forms, frames and special characters. The cheat sheet acts as a quick reference guide for HTML elements and their usage.
The Kubernetes Operator Pattern - ContainerConf Nov 2017Jakob Karalus
The document discusses the operator pattern in Kubernetes for managing stateful services. It describes how operators define custom APIs using CustomResourceDefinitions and create controllers that react to changes in the API to manage applications and infrastructure. Operators allow automating tasks like backups, scaling, healing and configuration that are difficult to do at the application level alone. Some examples of using operators for services like Kafka and Elasticsearch are provided.
This document provides an introduction and overview of DBIx::Class, an ORM (object relational mapper) for Perl. It discusses setting up tables for an authors and books example database, and performing CRUD (create, read, update, delete) operations both manually using SQL and using DBIx::Class. It also covers creating models with Schema::Loader, debugging, overloading result and result set classes, and inflating/deflating columns.
This document contains sample questions from an Oracle Database SQL Expert exam. It includes 21 multiple choice questions about SQL concepts like joins, aggregation, regular expressions, and data dictionary views. The questions are testing knowledge of SQL syntax, functions, and techniques like hierarchical queries, inline views, and subqueries.
This document discusses how to secure a Kubernetes platform. It covers setting up authentication and authorization using RBAC and certificates. It also discusses implementing network policies and pod security policies to restrict traffic and resources. Additional topics include integrating Vault for secrets management and using admission controllers and auditing to intercept and modify API requests for security purposes.
Este documento describe lenguajes regulares, expresiones regulares y gramáticas regulares. Explica que los lenguajes regulares contienen regularidades o repeticiones y pueden definirse como la unión, concatenación o cerradura de Kleene de otros lenguajes regulares. También define expresiones regulares y gramáticas regulares, y explica cómo estas pueden usarse para representar lenguajes regulares.
1) Los lenguajes regulares son aquellos cuyas palabras contienen regularidades o repeticiones de componentes.
2) Un lenguaje es regular si puede expresarse como la unión, concatenación o cerradura de Kleene de otros lenguajes regulares.
3) Las expresiones regulares representan lenguajes mediante símbolos y operaciones como unión, concatenación y cerradura.
Este documento describe lenguajes regulares, expresiones regulares y gramáticas regulares. Explica que un lenguaje regular puede representarse mediante un autómata finito o una expresión regular. También define formalmente lenguajes regulares, expresiones regulares y gramáticas regulares, y discute la equivalencia entre autómatas finitos y expresiones regulares.
El documento describe la instalación y uso del sistema de gestión de contenidos Joomla. Explica cómo instalar Joomla, gestionar y organizar contenidos a través de secciones, categorías y artículos, e instalar extensiones para mejorar las funcionalidades. También cubre temas como diseño, menús de navegación y funciones adicionales.
Este documento presenta un temario sobre Java en sistemas de tiempo real. Incluye conceptos básicos de sistemas de tiempo real como tareas, deadlines y planificación. Explica los desafíos de usar Java para este tipo de sistemas debido a la impredecibilidad del recolector de basura. Luego introduce la especificación Java Real-Time System (RTSJ) la cual provee características para tiempo real como planificación de tareas, manejo de memoria y eventos asíncronos. Finalmente, cubre el modelo de objetos del RTSJ incl
Este documento presenta una introducción al lenguaje XML. Explica los objetivos de aprender XML y sus esquemas, transformaciones y consultas. Describe la estructura básica de los documentos XML, incluyendo elementos, atributos, entidades y la necesidad de que sean bien formados. También introduce conceptos como procesamiento, DTDs y validación.
El documento presenta cuatro concepciones de la cultura: clásica, antropológica, estructural y una visión contextualizada. La concepción estructural propone analizar las formas simbólicas considerando rasgos internos (intencionalidad, estructura) y el contexto donde se producen (relaciones de poder, campos sociales). Los campos son arenas donde sujetos compiten por capitales como el académico o intelectual. Las instituciones regulan campos estables a largo plazo a través de normas y códigos.
Este documento presenta una introducción a la administración de MySQL. Se divide en seis secciones que cubren la introducción a MySQL, conceptos básicos, administración de la base de datos, herramientas de MySQL, características avanzadas y el lenguaje MySQL. Incluye información sobre instalación, gestión de usuarios, copias de seguridad y otras tareas de administración de bases de datos.
Este documento proporciona una introducción a Microsoft Test Manager 2010. Incluye temas como los tipos de pruebas (manuales, automatizadas, exploratorias), la planificación de pruebas, la ejecución de pruebas automatizadas y manuales, y la generación de informes. También explica cómo crear planes de pruebas, conjuntos de pruebas y casos de prueba en Microsoft Test Manager, y cómo configurar entornos de prueba.
Este documento proporciona una introducción a Windows Azure, incluyendo una descripción de sus principales componentes como roles, servicios de almacenamiento y computación en la nube. También cubre temas como la instalación del SDK, la creación de una aplicación Azure y los primeros pasos para ejecutarla localmente antes de implementarla en la nube.
Este documento presenta Sun Java System Web Server 6.1. Explica las herramientas incluidas como el Administration Server, Server Manager y Class Manager, las cuales permiten configurar e implementar aplicaciones y seguridad en el servidor. También cubre la instalación, configuración básica, despliegue de aplicaciones y funciones avanzadas de Sun Java System Web Server 6.1.
Spring Framework v3
Entender las ventajas que supone el uso de Spring en un proyecto de desarrollo SW
Aprender a configurar las distintas clases Java según el patrón IOC y AOP
Conocer los fundamentos de desarrollo Web con Spring MVC
Este documento describe las tecnologías involucradas en Liferay, incluyendo portales, portlets, Hibernate, Spring y más. Explica la arquitectura de Liferay, sus mecanismos de extensión y las tres estrategias principales para extender sus funcionalidades: entorno de extensión, plugins SDK y ServiceBuilder. También resume los requisitos para instalar Liferay como Java, Tomcat, MySQL y Ant.
Este documento describe varias herramientas para el desarrollo y gestión de proyectos Java. Explica Eclipse, Ant, Maven y otros como sistemas de control de versiones, gestión de incidencias y pruebas. Proporciona detalles sobre sus características y cómo usarlas en las distintas fases de un proyecto Java.
Este documento presenta una introducción al sistema operativo Red Hat Linux 5. Explica los conceptos básicos de Linux como el sistema de archivos, el shell de UNIX, el manejo de procesos y la administración del sistema. Además, detalla los pasos para instalar Red Hat Linux 5 y realizar la configuración inicial del sistema.
El documento habla sobre la Web 2.0 y las redes sociales y contenidos. Introduce al experto Oliver Centeno y su experiencia, y presenta un temario sobre introducción a la Web 2.0, creación de contenidos, herramientas de participación, gestores de contenido y posicionamiento. Explica las diferencias entre Web 1.0 y 2.0, con la segunda centrada en los usuarios y la participación y creación de contenidos.
Este documento presenta una introducción a Team Foundation Server 2010. Explica que TFS es una plataforma de colaboración para la gestión del ciclo de vida de aplicaciones que automatiza el proceso de entrega de software y proporciona herramientas para gestionar proyectos de desarrollo de forma eficaz. Se detallan conceptos clave como team project collections, team projects y la terminología jerárquica de TFS. También se describen características como la integración con Visual Studio y otras herramientas.
Este documento presenta los conceptos fundamentales de SOA y servicios web. Introduce la arquitectura SOA, sus ventajas y los lenguajes y protocolos implicados. Explica cómo crear y consumir servicios web existentes utilizando las tecnologías más extendidas. El documento está dividido en siete secciones que cubren los fundamentos teóricos de SOA, arquitectura SOA, servicios web XML, implementación de servicios web, servicios web RESTful, interoperabilidad y arquitectura ESB.
Este documento presenta el tema 2 de un curso de PHP. Explica conceptos básicos del lenguaje como sintaxis, tipos de datos, variables, constantes, expresiones, estructuras de control, funciones y tablas. También introduce bibliotecas de funciones comunes.
Este documento introduce los conceptos básicos del lenguaje PHP, incluyendo su sintaxis, tipos de datos, variables, constantes, expresiones, estructuras de control, funciones, tablas y bibliotecas de funciones. Explica cada uno de estos conceptos a través de ejemplos y comparaciones con C, con el objetivo de proporcionar una introducción general al lenguaje PHP.
Este documento presenta los conceptos básicos del lenguaje PHP, incluyendo la sintaxis, tipos de datos, variables, constantes, expresiones, estructuras de control, funciones, tablas y bibliotecas de funciones. Explica cómo incrustar código PHP en HTML, imprimir mensajes y usar comentarios.
Este documento presenta una introducción al lenguaje de programación PHP. PHP se usa principalmente para crear páginas web dinámicas mediante la interpretación del lado del servidor. El documento describe la sintaxis básica de PHP, incluidos tipos de datos, variables, constantes, expresiones, estructuras de control y funciones. También cubre temas como arrays, bibliotecas de funciones y la diferencia entre páginas web estáticas y dinámicas.
Este documento presenta el tema 2 de un curso de PHP. Cubre la sintaxis básica de PHP, incluyendo cómo incrustar código PHP en HTML y cómo imprimir. También explica los tipos de datos en PHP, variables, constantes, expresiones y operadores, estructuras de control como if/else y bucles, funciones, arrays, y bibliotecas de funciones comunes.
Este documento proporciona una guía detallada para instalar PHP en Windows y configurarlo para funcionar con Apache. Explica cómo instalar PHP, editar los archivos de configuración php.ini y httpd.conf, y agregar extensiones PHP. También resume los conceptos básicos de PHP como sintaxis, variables, operadores, bucles, funciones y conexión a MySQL.
1) El documento presenta el tema 2 de un curso sobre desarrollo web con PHP y MySQL, el cual cubre conceptos básicos del lenguaje PHP como sintaxis, tipos de datos, variables, constantes, expresiones, estructuras de control y funciones.
2) Se explican los tipos print y echo para imprimir, la inclusión de archivos, los tipos de datos escalares y compuestos en PHP, y estructuras como if/else, switch, while, for y foreach.
3) Finalmente, se mencionan bibliotecas de funciones de PHP para c
Este documento presenta una introducción a PHP. Brevemente describe la historia de PHP desde su creación en 1995 hasta su versión actual. Explica conceptos básicos como la sintaxis, variables, tipos de datos, arrays, estructuras de control y funciones.
Este documento presenta una introducción al lenguaje PHP, incluyendo su sintaxis básica, tipos de datos, variables, constantes, expresiones, estructuras de control como if/else y bucles, funciones y tablas. También cubre bibliotecas de funciones comunes y cómo incluir archivos externos en PHP.
Este documento presenta conceptos básicos del lenguaje PHP como sintaxis, tipos de datos, variables, constantes, expresiones, estructuras de control, funciones, tablas y bibliotecas de funciones. Explica cómo incrustar código PHP en HTML, usar estructuras selectivas como if/else y switch, estructuras repetitivas como while y for, y funciones. También cubre tablas y arrays, y cómo acceder a sus elementos.
PHP es un lenguaje de programación de código abierto utilizado principalmente para desarrollo web. Permite crear variables, arrays, bucles y funciones. Se puede conectar a bases de datos para almacenar y recuperar datos de forma dinámica.
Diapositivas de la introducción al lenguaje ruby en el curso de extensión universitaria "Desarrollo Web Avanzado" del programa de Extensión Universitaria de la Universidad de Oviedo (2010)
Este documento describe los scripts de shell de Unix y las variables y estructuras de control de datos en Bash. Los scripts se ejecutan mediante el shell y comienzan con el carácter #! y la ruta del shell. Las variables se definen con nombres que comienzan con una letra y se acceden anteponiendo $. Las estructuras incluyen if/then/else, bucles while y for, y funciones definidas con la palabra function.
Este documento ofrece consejos y tips sobre buenas prácticas de programación en PHP. Explica conceptos básicos como formato de código, diseño, control de versiones, uso de librerías, variables, tipos de datos, operadores, sentencias de control, ciclos, funciones, inclusiones de archivos y cadenas de caracteres.
Este documento presenta una introducción a PHP, incluyendo su historia, requisitos, sintaxis básica, tipos de variables, expresiones lógicas, ciclos, funciones y más. PHP es un lenguaje de scripts del lado del servidor que se usa comúnmente para crear páginas web dinámicas. Permite variables, arrays, funciones y más para generar contenido dinámico.
Este documento presenta los conceptos básicos del lenguaje PHP, incluyendo sintaxis, tipos de datos, variables, constantes, estructuras de control y funciones. Explica cómo incrustar código PHP en HTML y cómo imprimir y mostrar datos. También introduce conceptos como inclusiones de archivos, arrays, bucles y funciones.
PHP es un lenguaje de programación de alto nivel que se puede empotrar en páginas HTML. Se puede usar para crear scripts del lado del servidor, aplicaciones con interfaz gráfica y scripts en línea de comandos. Requiere un servidor web como Apache y una base de datos como MySQL. Se puede editar con editores de texto o IDEs y es software libre.
1. Los arrays permiten almacenar múltiples valores de un mismo tipo, indexados por enteros empezando en 0.
2. Se pueden acceder y modificar elementos individuales mediante su índice. Al salirse de los límites, se crean elementos con valor undef.
3. Existen funciones como push, pop, shift y unshift para añadir o quitar elementos al principio o final de un array.
PHP es un lenguaje de programación de alto nivel que se puede empotrar en páginas HTML para crear aplicaciones dinámicas del lado del servidor. PHP se puede usar para crear scripts del lado del servidor, scripts de línea de comandos y aplicaciones con interfaz gráfica. Se requiere un servidor web como Apache y una base de datos como MySQL para ejecutar aplicaciones PHP.
PHP es un lenguaje de programación de alto nivel que se puede empotrar en páginas HTML. Se puede usar para crear scripts del lado del servidor, aplicaciones con interfaz gráfica y más. Requisitos comunes incluyen PHP, un servidor web como Apache y una base de datos como MySQL. Los editores de texto y entornos de desarrollo integrados son útiles para escribir scripts PHP.
Similar a Perl (practical extraction and report language) (20)
Este documento resume dos metodologías ágiles principales: Scrum y Kanban. Introduce los conceptos básicos de los métodos ágiles como el manifiesto ágil, principios de desarrollo ágil y lean, y algunas técnicas comunes como las historias de usuario. Explica Scrum como un marco para aplicar prácticas ágiles y Kanban como una metodología basada en flujos de trabajo visuales. El documento proporciona una introducción general a estas metodologías ágiles populares.
Este documento presenta una introducción a los servicios web y Java. Explica los fundamentos de XML y su estructura, así como las diferentes formas de validar documentos XML como DTD y esquemas XML. También resume los contenidos del documento, incluyendo conceptos como el modelo SOA, lenguajes y protocolos de servicios web, y cómo crear y consumir servicios web existentes desde Java.
JavaFX es una tecnología que pretende facilitar la manera en que se construyen interfaces gráficas con Java.
La versión 2.x de este framework está totalmente construida como API de Java y mejora considerablemente respecto a su versión de scripting.
Este documento describe Enterprise Library 5.0, un conjunto de librerías open-source que facilitan el desarrollo de aplicaciones .NET implementando funcionalidad habitual mediante buenas prácticas de programación. Incluye nueve bloques de aplicación como caché, validación y seguridad, que pueden configurarse a través de ficheros de configuración. Cada bloque resuelve un problema común como el acceso a datos, logging o autorización de forma reutilizable.
Disculpa, no tengo suficiente contexto para completar el ejercicio. ¿Puedes proporcionar más detalles sobre lo que quieres lograr con la página y el web part?
El Project Management Institute es una de las entidades con mayor relevancia en el ámbito de la gestión de proyectos. PMP y CAPM son sus certificaciones insignia aunque la guía PMBoK en que se basan sea árida y difícil de estudiar. En esta presentación clarifico esta guía para todo aquél que esté planteándose certificarse.
La persistencia de objetos permite resolver los problemas de mapeo entre objetos de programación y registros de Base de Datos. Hibernate es uno de los Frameworks más utilizados y por ello lo desmigo en esta presentación.
Este documento describe OSGi, una plataforma de servicios modular para Java. OSGi define un framework que permite la instalación, actualización y eliminación dinámica de módulos o bundles. Los bundles son archivos JAR que pueden publicar y consumir servicios. El ciclo de vida de los bundles está controlado por el framework OSGi.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...AMADO SALVADOR
El catálogo general de electrodomésticos Teka presenta una amplia gama de productos de alta calidad y diseño innovador. Como distribuidor oficial Teka, Amado Salvador ofrece soluciones en electrodomésticos Teka que destacan por su tecnología avanzada y durabilidad. Este catálogo incluye una selección exhaustiva de productos Teka que cumplen con los más altos estándares del mercado, consolidando a Amado Salvador como el distribuidor oficial Teka.
Explora las diversas categorías de electrodomésticos Teka en este catálogo, cada una diseñada para satisfacer las necesidades de cualquier hogar. Amado Salvador, como distribuidor oficial Teka, garantiza que cada producto de Teka se distingue por su excelente calidad y diseño moderno.
Amado Salvador, distribuidor oficial Teka en Valencia. La calidad y el diseño de los electrodomésticos Teka se reflejan en cada página del catálogo, ofreciendo opciones que van desde hornos, placas de cocina, campanas extractoras hasta frigoríficos y lavavajillas. Este catálogo es una herramienta esencial para inspirarse y encontrar electrodomésticos de alta calidad que se adaptan a cualquier proyecto de diseño.
En Amado Salvador somos distribuidor oficial Teka en Valencia y ponemos atu disposición acceso directo a los mejores productos de Teka. Explora este catálogo y encuentra la inspiración y los electrodomésticos necesarios para equipar tu hogar con la garantía y calidad que solo un distribuidor oficial Teka puede ofrecer.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
2. Contenidos
1. El Lenguaje Perl
2. Tipos de Variables
3. Control de Flujo
4. Subrutinas, Funciones y Procedimientos
5. Entrada y Salida
6. Expresiones Regulares
7. Librerías y módulos
8. Orientación a Objeto
9. Interacción con Sistemas
2
3. ¿Qué es Perl?
PERL
Practical
Extraction and
Report
Language
Leguaje interpretado (script)
Larry Wall (1987) --> Perl v5 (1994)
Combina C, AWK, SED, shell,…
3
4. ¿Qué es Perl?
Procesamiento de ficheros/texto
Administración UNIX
Convertido a propósito general
Incluyendo CGI
Múltiples módulos extensibles
Repositorio de código CPAN
http://www.cpan.org
ActiveState
4
5. Herramientas Perl
ActivePerl
Intérprete de ActiveState
http://www.activestate.com/
Komodo IDE + PDK
perl -v
EPIC
Plugin para Eclipse
http://e-p-i-c.sf.net/updates
5
6. Primer Programa Perl
Fichero .pl
#!/usr/bin/perl –w
#!C:Perlbinperl.exe
print "Hola Perl!n";
6
7. Primer Programa Perl
Cómo ejecutarlo
perl script.pl
./script.pl
perl –e 'print "Hola Perl!n";'
7
9. Variables en Perl
No hay definición de tipos
Se distinguen por un carácter especial
Que precede la variable
E indica el formato de la misma
Es case-sensitive
Tras el carácter especial una letra
Se pueden usar dígitos y underscore
9
11. Variables Escalares
Comienzan por $
Texto
$nombre='Oliver';
$saludo="Hola $nombre";
$msj="Incrustar una ${var}iable";
Multilínea
$texto = <<MARCA_FIN;
Para poder asignarle textos
más complejos con saltos de línea
MARCA_FIN
11
12. Operadores
Aritméticos
+, -, *, / # texto o número
%, ** # resto y potencia
Cadena
. # Concatenación
x # Repetición
Ejemplos
$triple="hola "x3;
$k=2**10;
12
15. Funciones Predefinidas
Salida por pantalla
print $texto1, $texto2, ...
warn $texto1, $texto2, ...
Manejo de textos
length($texto)
chop($texto) # devuelve el último carácter
substr($texto, $desde, [$tamaño])
Búsqueda en texto
index($texto, $buscado, [$desde])
rindex($texto, $buscado, [$desde])
15
16. Funciones Predefinidas
Conversión a entero
hex($texto_hexadecimal)
oct($texto_octal)
int($texto_decimal)
Conversión a carácter
chr($codigo_ascii)
Conversión CASE
lc($texto) # convierte a minúsculas
uc($texto) # convierte a mayúsculas
lcfirst($texto) # sólo la primera letra
ucfirst($texto) # sólo la primera letra
16
18. Arrays
Comienzan por @
Los elementos son escalares ($)
Se asignan entre paréntesis
Se puede asignar un rango de valores
Elementos accesibles por índice en base 0
Se puede acceder a varios elementos
Asignables a escalares
($a, $b) = @array;
Concatenables en 1 dimensión
18
22. Tablas Hash
Almacenan pares clave-valor
Comienzan por %
Dos formas de definirlas:
%tabla = (uno, 1, dos, 2);
%tabla = (
uno => 1, dos => 2, nulo => undef
);
Acceso a elementos escalares con {key}
$elemento = $tabla{uno};
22
23. Funciones para Tablas Hash
Acceso a claves y valores
keys(%tabla) # array de claves
values(%tabla) # array de valores
each(%tabla) # recorre el hash
Acceso a elementos
exists $tabla{elemento}
defined $tabla{elemento}
delete $tabla{elemento}
23
30. Operadores Booleanos
Operadores a nivel de bit
&, |, ~ # AND, OR, NOT bit a bit
^ # XOR bit a bit
Operadores con asignación
&=, |=, !=
^=
Operador de selección condicional
? :
$x = $y > 5 ? "mayor" : "menor";
30
31. Operadores Especiales
Operadores de Comparación
cmp
Compara cadenas según su ASCII
$x cmp $y;
<=>
Compara números
$x <=> $y
¿Y cómo funcionan?
1 si $x > $y
0 si $x == $y
-1 si $x < $y
31
34. Estructuras de Control
Iteraciones condicionales
while(expresión){...}
until(expresión){...}
do{
...
}while(expresion);
do{
...
}until(expresion);
34
35. Estructuras de Control
Iteraciones controladas
for(init; eval; inc){...}
foreach $var (@array){...}
Control de iteraciones
next; #equivale a un continue
last; #equivale a un break
35
36. Perl (Practical Extraction and
Report Language)
4. Subrutinas y Procedimientos
Funciones y Procedimientos
Parámetros y variables locales
Funciones interesantes
36
37. Funciones y Subrutinas
Todas se identifican por sub
Su código va entre llaves (bloque)
Puede tener un return opcional
Si no, se retorna la última instrucción
Se invocan mediante
función
función()
&función
&funcion()
37
38. Funciones y Subrutinas
Los paréntesis son opcionales
sub función{ ... }
sub función($$@){ ... }
Siempre admite una lista de parámetros
Para recoger esos argumentos:
Variable implícita @_
Parámetros $_[0], $_[1], ...
Función implícita shift
Función splice
splice @array, [$desde, $n, @nuevo]
38
39. Funciones y Subrutinas
Todas las variables son globales
Para que sea local declararla
local($var1, $var2, $var3)
my($var1, $var2, $var3)
El paso de parámetros es por valor
Para que se pase por referencia
local(*a, *b) = @_;
&funcion(*a, *b);
39
40. Funciones y Subrutinas
Ejemplos
sub mayor{
local($msj) = " es mayor que ";
$salida = $_[0] > $_[1] ?
$_[0].$msj.$_[1] : $_[1].$msj.$_[0];
}
sub swap{
local(*x, *y) = @_;
local($tmp) = $x;
$x = $y;
$y = $tmp;
}
40
41. Perl (Practical Extraction and
Report Language)
5. Entrada y Salida
Entrada y Salida estándar
Variables de entorno
Lectura y Escritura de ficheros
41
42. Entrada/Salida
Operador de entrada
<>
Contiene una entrada de datos
Teclado, fichero, correo, comando,...
Lectura de teclado
Puntero STDIN
Lee hasta pulsar Intro
Se cancela con Ctrl+Z o Ctrl+D
42
43. Entrada/Salida
Lectura de teclado
$linea = <STDIN>;
La cadena leída incluye el "n"
Función chop
chop($linea = <STDIN>);
Lectura de fichero por argumento
@fichero = <>;
perl script.pl fichero.txt
Variable @ARGV;
43
44. Entrada/Salida
Lectura de fichero
Crear un puntero a fichero
open(FICHERO, "ruta/al/fichero");
close(FICHERO);
Lectura línea a línea ó en bloque
$linea = <FICHERO>;
@lineas = <FICHERO>;
Admite modificadores de acceso
Normalmente delante de la ruta
44
45. Entrada/Salida
Lectura de fichero
Modificadores:
< Modo de lectura (por defecto)
> Modo de escritura (sobrescribe)
>> Modo de concatenación
+> Modo de lectura/escritura creador
+< Modo de lectura/escritura no creador
| Modo tubería (se pone detrás de la ruta)
45
46. Entrada/Salida
Operador de salida
Salida estándar
print STDOUT "Hola";
Escritura de fichero
Crear un puntero de escritura a fichero
print FICHERO $dato;
Salida con formato
printf "cadena formateada", @valores
sprintf "cadena formateada", @valores
46
47. Entrada/Salida
Formatos de escritura
%d Número entero
%o Entero octal
%x Entero hexadecimal
%f Número real
%e Notación científica
%c Carácter
%s Cadena de caracteres
%ld Entero largo
%lf Flotante doble precisión
47
48. Entrada/Salida
Secuencias de escape especiales
n Salto de línea
t Tabulador
b Borrado de un carácter
a Pitido
f Salto de página
v Tabulador vertical
Backslash
" Comillas
000 Carácter ASCII octal
48
49. Entrada/Salida
Operadores para ficheros
-e Indica si el fichero existe
-r Indica si el fichero es legible
-w Indica si el fichero es modificable
-x Indica si el fichero es ejecutable
-d Indica si es un directorio
-l Indica si es un acceso directo
-M Fecha de la última modificación
-A Fecha del último acceso
49
50. Entrada/Salida
Ejemplos
if(-e "fichero.txt"){
open(FICHERO, "fichero.txt");
}
if(-e "mi_fichero.txt"
&& -r "mi_fichero.txt"){
print "Existe y es legiblen" ;
}
open(FICHERO, "+<mi_fichero.txt") || die
("no se ha podido abrir");
50
51. Entrada/Salida
Funciones para ficheros
read(FICHERO, $var, $cuantos, [$buffer])
Lee $cuantos caracteres
Desde la posición actual
Y los guarda en $var
$buffer indica cuántos se de la última lectura
tell(FICHERO)
Devuelve la posición del puntero
51
52. Entrada/Salida
Funciones para ficheros
eof(FICHERO)
Comprueba si estamos al final del fichero
seek(FICHERO, $despl, $desde)
Mueve el puntero $despl posiciones
Empezando a contar
Desde el principio ($desde=0)
Desde el puntero ($desde=1)
Desde el final ($desde=2)
52
53. Entrada/Salida
Ejemplos
#leo 10 caracteres
read(FICHERO, $leido, 10);
#leo 7 desde el puntero y 5 del anterior
read(FICHERO, $leido, 7, 5);
#muevo el puntero 2 caracteres a la derecha
seek(FICHERO, 2, 1);
#muevo el puntero a 10 caracteres antes del final
seek(FICHERO, -10, 2);
#muevo el puntero a 3 caracteres del anterior
seek(FICHERO, 4, 0);
#leo 7 desde el puntero y 3 del anterior
read(FICHERO, $leido, 7, 3);
53
54. Perl (Practical Extraction and
Report Language)
6. Expresiones Regulares
Búsqueda de patrones
Caracteres especiales
Sustitución de cadenas
54
55. Expresiones Regulares
Modelo/forma de comparar texto
Permite definir patrones de texto
Búsqueda, modificación y extracción
de palabras clave
Expresiones de sustitución
Expresiones de comparación
Expresiones de traducción
$& contiene la última cadena encontrada
55
56. Expresiones de Comparación
Se escriben entre barras /patrón/
Se evalúan mediante =~, !~
$texto =~ /patron/;
También se usa para sustituir patrones
$var =~ s/uno/dos/;
El patrón puede ser simple
/Hola/
O elaborado
/[a-zA-Z0-9@]/
56
57. Expresiones Regulares
Algunos Patrones:
/[…]/ cualquiera de los caracteres entre
corchetes
/[^…]/ ninguno de los caracteres entre
corchetes
/^…/ contiene la cadena al principio
/…$/ contiene la cadena al final
/^$/ cadena vacía
* repetición cero o más veces
+ repetición una o más veces
? elemento opcional
57
58. Expresiones Regulares
Ejemplos:
/^c./ Empieza por 'c'
/.c$/ Termina con 'c'
/a*b+/ Cero o más aes seguidas de una o
más bes
/c?/ Una 'c' opcional
/[a-zA-Z][a-zA-Z0-9_]*/
/[a-zA-Z][a-zA-Z0-9_]*
@[a-zA-Z0-9_]+.[a-zA-Z]+/
58
59. Expresiones Regulares
Caracteres especiales
Para facilitar la creación de patrones
w Caracteres alfanuméricos
d Caracteres numéricos
s Espacio en blanco
^ Carácter ^
~ Carácter ~
b inicio o fin de una palabra
A inicio de cadena (equivale a ^)
59
60. Expresiones Regulares
Caracteres especiales
{n,m} entre n y m repeticiones
() separación de patrones
| OR para patrones
& AND para patrones
La versión en mayúsculas niega el patrón
W Caracteres no alfanuméricos
D Caracteres no numéricos
…
60
61. Expresiones Regulares
Sustitución
Formato s/…/…/
Sustituye el primer patrón por el segundo
Formato s/…/…/g
Sustituye todas las ocurrencias
Formato s/…/…/i
Independiente de mayúsculas y minúsculas
Formato s/…/…/e
Evalúa la sustitución como Perl
s/d+/$&*5/e Multiplica los números por 5
61
62. Expresiones Regulares
Sustitución
Variables $1 a $9
Referencian uno de los patrones encontrados
s/(Hola)(Mundo)/Fin del $2/
s/(w)(d)/Encontrados $1 y $2/
Variables 1 a 9
Referencias dentro del patrón
/^([a-zA-Z0-9_]).1$/
62
63. Expresiones Regulares
Traducción
Formato tr/…/…/
Sustituye carácter a carácter
Si se acaban se repite el último carácter
tr/aeiou/qwerty/
Sustituye las 'a' por 'q',…
tr/qwerty/abc/
Sustituye las 't' por 'c'
63
64. Expresiones Regulares
Traducción
Formato tr/…/…/c
Sustituye los que no cumplan el patrón
Formato tr/…/…/s
Elimina las letras repetidos seguidas
Formato tr/…/…/d
No reemplaza sino que borra los encontrados
64
65. Expresiones Regulares
Funciones interesantes
pack("formato", @variables)
Empaquetado
Convierte a ASCII variables según un formato
unpack("formato", "cadena")
Desempaquetado
Recupera variables desde formato ASCII
65
66. Expresiones Regulares
Funciones interesantes
Formatos
c Carácter con signo
s Entero corto con signo
l Entero largo con signo
i Entero con signo
f Real en punto flotante
d Real en precisión doble
x Byte nulo
66
69. Módulos y Paquetes
Módulo: Fichero .pm reutilizable
Paquete: Carpeta que contiene módulos
Creación de módulos
Primera línea
package Nivel1::Nivel2::Nivel3;
Pragma de programación segura
use strict;
Variables my
Claves de HASH entre comillas
Error al usar como referencia algo que no lo es
69
70. Módulos y Paquetes
Creación de módulos
Módulo exportador de funciones
require Exporter;
Array de herencia
@ISA="Exporter";
Array de símbolos exportados
@EXPORT=qw(f1 f2 $escalar @vector);
Retorno del módulo
1;
70
71. Módulos y Paquetes
Ejemplo de módulo
package MisModulos::FechaHora;
require Exporter;
@ISA=qw(Exporter);
@EXPORT=qw(fecha);
sub fecha{
($sg,$min,$h,$d,$m,$a)=localtime(time);
$a+=1900; $m++;
return "$d/$m/$a $h:$min:$sg";
}
1;
71
72. Módulos y Paquetes
Importación de módulos
use Nivel1::Nivel2;
use modulo [version] [lista funciones];
Función qw() convierte a lista de textos
use Modulo qw(f1 f2 f3);
use vars qw($nombre @EXPORT @ISA);
Acceso a funciones en módulos
Si está exportada e importada, usarla
Si no, Paquete::modulo::funcion;
72
73. Módulos y Paquetes
Repositorios de Paquetes
CPAN
http://search.cpan.org/
Búsqueda y descarga
PPM
Perl Package Manager
ActiveState
PPM Repositories
http://www.bribes.org/perl/ppm/
73
74. Módulos y Paquetes
Ejemplos de uso de módulos
use Switch;
switch($x){
case ["a".."z"] {print "minúscula";}
case [1,2,3,5,7] {print "primo";}
case 4 {print "potencia de 2";}
else{ print "X"; }
}
74
75. Módulos y Paquetes
Ejemplos de uso de módulos
use XML::Simple;
my $xml = XML::Simple::XMLin($fichero);
$ref_nodo = $xml->{nodo};
@ref_nodos = @$ref_nodo;
for $d (@ref_nodos){
$d->{atributo} = "valor";
}
$salida = XMLout($xml, RootName=>"raiz");
75
76. Módulos y Paquetes
Ejemplos de uso de módulos
use IO::Compress::Zip qw(zip $ZipError);
chop($entrada = <STDIN>);
if(defined $entrada){
zip $entrada => "comprimido.zip"
or die "Error al comprimir";
}else{
zip '<*.txt>' => '<*.zip>'
or die "Error al comprimir";
}
print "Comprimidon";
76
77. Módulos y Paquetes
Ejemplos de uso de módulos
use LWP::UserAgent;
my $navegador = LWP::UserAgent->new;
my $pagina = $navegador-> get('http:
//search.cpan.org/');
if ($pagina->is_success) {
print $pagina->decoded_content;
}else {
die $pagina->status_line;
}
77
78. Módulos y Paquetes
Documentación POD
Añadida al fichero .pm
=head1 NAME
Nombre del módulo
=head1 ABSTRACT | SYNOPSIS
Descripción breve, uso del módulo
=head1 DESCRIPTION
=head2 Nombre función
=back
…
78
79. Módulos y Paquetes
Comandos de conversión
A texto, html o man de UNIX
pod2man Modulo.pm > fichero
pod2html Modulo.pm > fichero
pod2text Modulo.pm > fichero
79
80. Perl (Practical Extraction and
Report Language)
8. Orientación a Objeto
Conceptos
Ámbito de Variables
Creación y uso de objetos
80
81. Conceptos
Programación Orientada a Objeto
Para facilitar la programación
Se define una estructura más compleja
Las variables son estructuras
Compuestas de datos (atributos)
Y de subrutinas/funciones (métodos)
Cada variable contienen sus propios
valores y todas las funciones
81
82. Conceptos
Programación Orientada a Objeto
¿Se puede aplicar en Perl?
$, @ y % contienen datos
¿Y qué es &?
Existen otros tipos de dato
CODE
FILEHANDLE
FORMAT
82
83. Conceptos
Programación Orientada a Objeto
$, @ y % contienen referencias
También existe & como referencia
Puedo crear variables escalares que
contengan referencias
Y usarlas mediante puntero/casting
$$ref_escalar
$ref_array->[0]
$ref_tabla->{id}
$ref_sub->()
83
84. Creación y Uso de Objetos
Programación Orientada a Objeto
Puedo crear objetos como referencias
Y acceder a su contenido como puntero
$objeto->funcion;
$objeto->atributo;
Debo definir el tipo de dato en un Módulo
Y "bendecir" los objetos
$objeto = {atributo=>5};
bless $objeto, "Tipo";
print "El tipo es ", ref $objeto;
84
85. Creación y Uso de Objetos
Ámbito de las variables
Por defecto ámbito GLOBAL
Ámbito local
Ámbito privado (my)
Ámbito compartido (our)
Acceso por ámbito
$var # acceso a ámbito
$::var # acceso a Global
main::var # acceso a paquete main
85
86. Creación y Uso de Objetos
El constructor
Función especial new()
Que asigna valores a los atributos
$objeto = Modulo->new();
El destructor
En otros lenguajes existe función destructora
En Perl basta con asignar valor undef
Se libera la memoria automáticamente
$objeto = undef;
86
87. Creación y Uso de Objetos
Ejemplo de módulo de objetos
package Coche;
sub new{
my $clase = shift;
my $objeto = {
marca=>shift, modelo=>shift
};
bless $objeto, $clase;
return $objeto;
}
87
88. Creación y Uso de Objetos
Ejemplo de uso de objetos
use Coche;
$miCoche = Coche->new("Peugeot", 207);
$otro = Coche->new("Opel", "Astra");
print "Tengo un ", $miCoche->{marca},
" ", $miCoche->{modelo};
88
89. Creación y Uso de Objetos
Una pequeña mejora
sub Marca{
return shift->{marca};
}
print "Tengo un ", $miCoche->Marca;
sub Modelo($){
my ($obj, $valor) = (shift,shift);
if(defined $valor){$obj->{modelo} = $valor;}
else{ return $obj->{modelo};}
}
89
96. Interacción Web
Módulo CGI
Common Gateway Interface
use CGI qw/:standard/;
Funciones HTML
header
start_html y end_html
h1, h2, h3, h4, h5, h6
p, br, hr
em, b, i, u, font
start_form y end_form
96
99. Interacción Web
Ejecutar en IIS 4-6
Administrador de IIS
Propiedades de un Sitio Web
Directorio particular > configuración
Agregar extensión .pl asociada a C:
Perlbinperlis.dll
Copiar el fichero .pl a ejecutar
99
100. Interacción Web
Ejecutar en IIS 7
Administrador de IIS
Habilitar 32-bit en el Application Pool
Añadir un mapeo al Handler Mapping
Module Mapping
IsapiModule
Extensión PL
Ejecutable C:PerlbinPerlEx30.dll
Copiar el fichero .pl a ejecutar
100