¿Ya dominas lo básico? Un curso estructurado de Perl es la vía rápida para dar el salto.
Ver cursos de Perl en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (print)
- 03Variables (variables escalares, $)
- 04Condicionales (la sentencia if)
- 05Repetir (el bucle for)
- 06Escribir una subrutina (una función)
- 07Repetir (el bucle while)
- 08Trabajar con arrays (@)
- 09Trabajar con hashes (%)
- 10Coincidencia con expresiones regulares
- 11Sustitución con expresiones regulares (s///)
- 12Trabajar con texto
- 13Referencias
- 14Subrutinas anónimas
- 15Entrada y salida de archivos, lo básico
- 16Módulos y use strict / warnings
- 17El operador ternario
- 18Ordenar (sort)
- 19Paquetes y lo básico de la orientación a objetos
- 20[Proyecto] Construye un mini sistema de inventario
Subrutinas anónimas
En esta lección crearás una subrutina sin nombre y la aplicarás a toda una lista.
sub { ... } sin nombre devuelve una referencia a esa subrutina, que se guarda en un escalar y se llama con la flecha: $add_tax->($precio). map aplica un bloque a cada elemento de una lista y devuelve la lista de resultados, donde $_ representa el elemento actual.
El código de ejemplo define un cálculo de impuesto y lo aplica a tres precios. Al imprimir "@with_tax" entre comillas dobles, Perl une los elementos con espacios.
Esa variable $_ aparece por todas partes en Perl: es el «elemento actual» implícito de map, grep y foreach. Ahorra escritura y, usada en exceso, hace el código ilegible; la costumbre sensata es usarla en bloques cortos y poner un nombre explícito en los largos.
Fíjate en el int() del cálculo: descarta los decimales, así que con 105 el impuesto sería 10 y no 10,5. En cálculos de dinero eso importa, y es la razón por la que en producción se trabaja en céntimos con enteros o con módulos decimales específicos.
🧪 Este sitio no puede compilar ni ejecutar Perl directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
