El tutorial Perl Maven te enseñará los principios básicos del lenguaje de programación Perl. Seras capaz de escribir scripts sencillos, analizar ficheros de log o leer ficheros CSV entre otras muchas cosas.
Aprenderás como usar CPAN y veremos algunos módulos CPAN concretos.
La versión online gratuita del tutorial esta actualmente en desarrollo. Muchas partes están listas y otras son publicadas cada pocos días. La mayoría de los artículos no están todavía traducidos al castellano, los enlaces a la versión original en inglés estarán seguidos de (en) para indicar que todavía no esta traducido. Si estas interesado en recibir notificaciones cuando se publiquen nuevos artículos regístrate en el newsletter (en).
También hay una versión e-book (en) disponible para comprar. Además del tutorial gratuito esa versión incluye muchos ejercicios y soluciones, incluyendo las áreas que todavía no están disponibles en la versión gratuita.
El vídeo-curso(en) contiene sobre 210 episodios, más de 5 horas de vídeo. Además de presentar el material también proporciona explicaciones sobre las soluciones de todos los ejercicios. También incluye el código fuente de todos los ejemplos y ejercicios.
Free on-line Beginner Perl Maven tutorial
En este tutorial veremos como usar el lenguaje de programación Perl 5 para hacer tu trabajo.
Aprenderemos tanto características generales del lenguaje, así como extensiones o librerías o se denominan en Perl, módulos. Veremos algunos de los módulos estándar incluidos en perl y otros módulos externos, que instalaremos desde CPAN.
Introducción
- [Instalando Perl, mostrando Hola Mundo, red de seguridad (use strict, use warnings)](/instalacion-y-primeros-pasos-con-perl)
- [#!/usr/bin/perl - the hash-bang line (en)](https://perlmaven.com/hashbang)
- [Editores e IDEs, entornos de desarrollo en Perl](/editor-de-perl)
- [Obteniendo ayuda](/ayuda)
- [Perl en la línea de comandos](/perl-en-linea-de-comandos)
- [Documentación del núcleo de Perl y los módulos CPAN](/documentacion-nucleo-perl-modulos-cpan)
- [POD - Plain Old Documentation](/pod-plain-old-documentation-de-perl)
- [Depurando Perl scripts](/depurando-scripts-perl)
Escalares
- [Errores y warnings tipicos en Perl](/errores-y-warnings-comunes)
- [Conversión automática de texto a número](/conversion-automatica-de-valores-en-perl)
- Sentencias condicionales: if
- [Valores booleanos en Perl](/valores-booleanos-en-perl)
- [Operadores numéricos](/operadores-numericos)
- [Operadores para strings: concatenación (.) y repetición (x)](/operadores-string)
- [undef, el valor inicial y la función defined](/undef-y-defined-en-perl)
- [Strings en Perl: entrecomillado, interpolación y secuencias de escape](/strings-entrecomillados-interpolados-y-escapados-en-perl)
- [Here documents](/here-documents)
- [Variables escalares (en)](https://perlmaven.com/scalar-variables)
- [Comparando escalares (en)](https://perlmaven.com/comparing-scalars-in-perl)
- [Funciones para tratar Strings: length, lc, uc, index, substr (en)](https://perlmaven.com/string-functions-length-lc-uc-index-substr)
- [Adivina el número (rand, int) (en)](https://perlmaven.com/number-guessing-game)
- [Bucle while en Perl (en)](https://perlmaven.com/while-loop)
- [Rango de las variables en Perl (en)](https://perlmaven.com/scope-of-variables-in-perl)
- [Boolean Short circuit (en)](https://perlmaven.com/short-circuit)
Ficheros
- [exit (en)](https://perlmaven.com/how-to-exit-from-perl-script)
- [Standard Output, Standard Error and command line redirection (en)](https://perlmaven.com/stdout-stderr-and-redirection)
- [warn (en)](https://perlmaven.com/warn)
- [die (en)](https://perlmaven.com/die)
- [Escribiendo en ficheros (en)](https://perlmaven.com/writing-to-files-with-perl)
- [Anexando texto a ficheros (en)](https://perlmaven.com/appending-to-files)
- [Abriendo y leyendo ficheros en Perl](/abrir-y-leer-desde-archivos-de-texto)
- [No abras ficheros a la antigua usanza (en)](https://perlmaven.com/open-files-in-the-old-way)
- Modo binario, tratando con Unicode
- Leyendo un fichero binario, read, eof
- tell, seek
- truncate (en)
- [Modo slurp (en)](https://perlmaven.com/slurp)
Listas y Arrays
- Bucle foreach en Perl
- [Bucle for en Perl](/bucle-for-en-perl)
- Listas en Perl
- Usando Modulos
- [Arrays en Perl](/arrays-en-perl)
- [Procesando parámetros en la línea de comandos (@ARGV)](/argv-en-perl)
- Procesando parámetros en la línea de comandos con Getopt::Long
- [split (en)](https://perlmaven.com/perl-split)
- [Como leer fichero CSV usando Perl (split, Text::CSV_XS)](/como-leer-un-fichero-csv-en-perl)
- [join](/join)
- [El año 19100 (time, localtime, gmtime)](/el-anno-19100) e introduciendo el contexto
- [Sensibilidad al contexto en Perl](/contexto-escalar-y-lista-en-perl)
- [Ordenando arrays en Perl](/ordenando-arrays-en-perl)
- [Ordenando strings mixtos (en)](https://perlmaven.com/sorting-mixed-strings)
- [Valores únicos en arrays (en)](https://perlmaven.com/unique-values-in-an-array-in-perl)
- [Manipulando arrays: shift, unshift, push, pop (en)](https://perlmaven.com/manipulating-perl-arrays)
- Pilas y [colas (en)](https://perlmaven.com/using-a-queue-in-perl)
- reverse
- [El operador ternario](/el-operador-ternario-en-perl)
- Controles en bucles: next y last
- min, max, sum usando List::Util
Subrutinas
- [Subrutinas y funciones en Perl (en)](https://perlmaven.com/subroutines-and-functions-in-perl)
- Paso y comprobación de parámetros en subrutinas (en)
- [Número variable de parámetros (en)](https://perlmaven.com/variable-number-of-parameters)
- Devolviendo una lista (en)
- [Subrutinas recursivas (en)](https://perlmaven.com/recursive-subroutines)
Hashes, arrays
- [Perl Hashes (diccionarios, array asociativos, tablas look-up table) (en)](https://perlmaven.com/perl-hashes)
- exists, eliminando elementos en un hash (en)
- [Ordenando un hash (en)](https://perlmaven.com/how-to-sort-a-hash-in-perl)
- [Frecuencia de una palabra en un fichero de texto (en)](https://perlmaven.com/count-words-in-text-using-perl)
Expresiones regulares
- [Introducción a las expresiones regulares en Perl (en)](https://perlmaven.com/introduction-to-regexes-in-perl)
- [Regex: character classes (en)](https://perlmaven.com/regex-character-classes)
- Regex: quantifiers
- Regex: Greedy and non-greedy match
- Regex: Grouping and capturing
- Regex: Anchors
- Regex options and modifiers
- Sustituciones (búsqueda y reemplazo)
- [trim - eliminando espacios sobrantes (en)](https://perlmaven.com/trim)
Relación de Perl con la línea de comandos
- Perl -X operators
- Perl pipes
- Ejecutando programas externos mediante [system (en)](https://perlmaven.com/running-external-programs-from-perl)
- Comandos Unix: rm, mv, chmod, chown, cd, mkdir, rmdir, ln, ls, cp
- [Como borrar, copiar o renombrar un fichero en Perl (en)](https://perlmaven.com/how-to-remove-copy-or-rename-a-file-with-perl)
- Windows/DOS commands: del, ren, dir
- File globbing (Wildcards)
- Directory handles.
- Recorriendo un árbol de directorios [de forma recursiva](https://perlmaven.com/recursive-subroutines), [uso de una cola (en)](https://perlmaven.com/traversing-the-filesystem-using-a-queue) y uso de find (en).
CPAN
- [Descargando e instalando Perl (Strawberry Perl o una compilación manual) (en)](https://perlmaven.com/download-and-install-perl)
- Descargando e instalando Perl usando Perlbrew
- Buscando y evaluando módulos en CPAN
- Descargando e instalando módulos Perl desde CPAN
- [Como modificar @INC para usar módulos Perl que no están en directorios estándar (en)](https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations)
- [Como cambiar @INC para usar un ruta relativa (en)](https://perlmaven.com/how-to-add-a-relative-directory-to-inc) (for [Pro](https://perlmaven.com/pro) subscribers.)
- local::lib
Algunos ejemplos usando Perl
- [How to replace a string in a file with Perl? (slurp) (en)](https://perlmaven.com/how-to-replace-a-string-in-a-file-with-perl)
- Leyendo ficheros Excel usando Perl
- [Creando ficheros Excel usando Perl (en)](https://perlmaven.com/create-an-excel-file-with-perl) (for [Pro](/pro) subscribers.)
- Enviando emails usando Perl
- Scripts CGI en Perl
- Aplicaciones web en Perl: PSGI
- Parseando ficheros XML
- Leyendo y escribiendo ficheros JSON
- [Acceso a base de datos usando Perl (DBI, DBD::SQLite, MySQL, PostgreSQL, ODBC) (en)](https://perlmaven.com/simple-database-access-using-perl-dbi-and-sql)
- Accediendo a LDAP usando Perl
- [Global symbol requires explicit package name (en)](https://perlmaven.com/global-symbol-requires-explicit-package-name)
- [Uso de valores no inicializados (en)](https://perlmaven.com/use-of-uninitialized-value)
- [Bareword not allowed while "strict subs" in use (en)](https://perlmaven.com/barewords-in-perl)
- [Name "main::x" used only once: possible typo at ... (en)](https://perlmaven.com/name-used-only-once-possible-typo)
- [Unknown warnings category (en)](https://perlmaven.com/unknown-warnings-category)
- [Can't locate ... in @INC (en)](https://perlmaven.com/cant-locate-in-inc)
- [Scalar found where operator expected (en)](https://perlmaven.com/scalar-found-where-operator-expected)
- ["my" variable masks earlier declaration in same scope (en)](https://perlmaven.com/my-variable-masks-earlier-declaration-in-same-scope)
- [Can't call method ... on unblessed reference (en)](https://perlmaven.com/cant-call-method-on-unblessed-reference)
- [Argument ... isn't numeric in numeric ... (en)](https://perlmaven.com/argument-isnt-numeric-in-numeric)
- [Can't locate object method "..." via package "1" (perhaps you forgot to load "1"?) (en)](https://perlmaven.com/cant-locate-object-method-via-package-1)
- [Odd number of elements in hash assignment (en)](https://perlmaven.com/creating-hash-from-an-array)
- [Possible attempt to separate words with commas (en)](https://perlmaven.com/qw-quote-word)
- [Undefined subroutine ... called (en)](https://perlmaven.com/autoload)
Other
- [Splice to slice and dice arrays in Perl (en)](https://perlmaven.com/splice-to-slice-and-dice-arrays-in-perl)
- [How to create a Perl Module for code reuse (en)](https://perlmaven.com/how-to-create-a-perl-module-for-code-reuse)
- [Object Oriented Perl using Mooses (en)](https://perlmaven.com/object-oriented-perl-using-moose)
- [Attribute types in Perl classes when using Moose (en)](https://perlmaven.com/attribute-types-in-perl-classes-when-using-moose)
- [Multi dimensional arrays (en)](https://perlmaven.com/multi-dimensional-arrays-in-perl)
- [Multi dimensional hashes (en)](https://perlmaven.com/multi-dimensional-hashes)
- [Minimal requirement to build a sane CPAN package (en)](https://perlmaven.com/minimal-requirement-to-build-a-sane-cpan-package)
- [Testing a simple Perl module (en)](https://perlmaven.com/testing-a-simple-perl-module)
- [What are string and numeric contexts? (en)](https://perlmaven.com/what-are-string-and-numeric-contexts)
Perl Orientado a Objetos con Moo
Hay una serie completa de artículos acerca de como escribir código Orientado a Objetos usando el framework Moo (en).
Recordatorio, hay e-books y cursos en vídeo disponibles para comprar (en).
Introducción al curso avanzado de Perl