typestar

Fundamentos del lenguaje

27 pasos en 9 series de Perl.

Perl mantuvo unida a internet antes de que existiera la palabra backend: scripts CGI, pipelines de logs, bioinformática y los one-liners de sysadmin que todavía corren a las 3 de la mañana. Su lema — hay más de una manera de hacerlo — construyó un lenguaje de signos, contextos y regexes tan centrales que moldearon cada motor posterior (PCRE es 'compatible con Perl' por algo). Teclear Perl significa tres signos bajo tus dedos y coincidencias de patrones por todas partes.

Este tour cubre el Perl tal como mejor se escribe hoy: strict y warnings en cada archivo, las tres formas de variable y los contextos que alternan entre ellas, el kit de regex a fondo, map y grep por encima de los bucles explícitos, referencias para estructuras de datos reales y toques modernos como say y la desreferencia postfija. El bis entrega programas completos. Cada fragmento pasa perl -c y corre de principio a fin bajo Perl 5.38.

Empieza este tour

Escalares y signos

  • Escalares y signosUn signo $ para cada valor individual, ya guarde una cadena o un número.
  • Arreglos y listasEl signo @ para el arreglo entero, $ para un elemento, e índices negativos de regalo.
  • HashesLa forma clave-valor de Perl: % para el hash entero, $ más llaves para un valor.

Control de flujo

  • if, elsif y unlessRamificar con if, el elsif de una sola palabra de Perl y unless para el caso negativo.
  • Bucles foreachTres formas de foreach: recorrer una lista, contar un rango y editar en el lugar.
  • Modificadores de sentenciaLas formas postfijas que ponen if, unless y for después de la sentencia que protegen.

Expresiones regulares

  • Coincidencia con regexLigar cadenas a patrones con =~, más !~ y el modificador /i.
  • Sustitución con s///Buscar y reemplazar con s///: ediciones globales, y /r cuando el original debe sobrevivir.
  • Grupos de capturaGrupos de captura de tres maneras: listas numeradas, entradas con nombre en %+ y cosechas con /g.

Listas y contexto

  • Contexto escalar y de listaLa idea que hace a Perl ser Perl: la misma expresión significa dos cosas según quién la recibe.
  • map y grepTransforma y filtra listas en una línea cada uno — y luego encadena ambos en un pipeline.
  • Órdenes a medida con sortsort acepta un bloque comparador: <=> para números, cmp para cadenas y lo que tú calcules.

Cadenas

  • Funciones de cadenaEl kit diario de cadenas: mayúsculas, longitud, búsqueda, rebanado, split y join.
  • Formato con sprintfPlantillas al estilo printf para columnas, relleno y bases numéricas.
  • Heredocs con sangríaCadenas multilínea con <<~, que quita la sangría para que el código quede bonito.

Subrutinas

  • Subrutinas y @_La convención clásica de llamada: cada argumento llega en un arreglo plano llamado @_.
  • Firmas de subrutinaParámetros con nombre en la propia declaración — estables desde Perl 5.36, sin desempacar @_.
  • Subs anónimas y clausurasCódigo en una variable: sub { ... } sin nombre devuelve una referencia que llamas con la flecha.

Referencias y estructuras

Archivos y Perl moderno

  • E/S de archivosLa forma moderna de open: tres argumentos, un handle léxico y or die.
  • El feature sayprint con el salto de línea incluido, activado por el pragma feature.
  • Desreferencia postfijaDos escrituras de la misma desreferencia: @$ref con signo inicial y el postfijo $ref->@*.

Bis

  • word_freq.plUn reporte de frecuencia de palabras sobre un pasaje incrustado, impulsado por un solo hash.
  • grade_report.plPromedia los puntajes por estudiante de un hash de arreglos en una tabla con calificaciones.
  • log_parser.plAgrupa líneas de log por severidad con una sola regex de capturas con nombre.

Los otros tours de Perl