¿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
Trabajar con hashes (%)
En esta lección guardarás pares de clave y valor para poder buscar por nombre.
Los hashes —los diccionarios de Perl— empiezan por %. Se declaran con pares unidos por =>, y se consulta un valor con llaves: $prices{"manzana"}, con dólar porque lo que sacas es un escalar.
El código de ejemplo guarda dos precios y los muestra. Fíjate en las barras invertidas: como el texto va entre comillas dobles, las comillas de la clave hay que escaparlas con \" para que no cierren la cadena antes de tiempo.
Esa mezcla de símbolos es la parte espinosa: %prices es el hash entero, $prices{"clave"} es un valor, y @prices{...} sería un grupo de valores a la vez. Otra vez, el símbolo describe lo que obtienes.
Un detalle importante: los hashes no conservan el orden en que metiste las claves, y ese orden puede cambiar entre ejecuciones. Si necesitas una salida estable, hay que recorrerlos ordenados de forma explícita con foreach my $k (sort keys %prices).
🧪 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).
