Lección 19 / 20

Paquetes y lo básico de la orientación a objetos

En esta lección crearás una clase en Perl, con su constructor y sus métodos.

package Animal; abre un espacio de nombres, que es lo que en Perl hace de clase. El constructor es una subrutina normal, por convención llamada new, que crea un hash con los datos y lo asocia a la clase con bless. En los métodos, el primer argumento es siempre el propio objeto.

El código de ejemplo define un animal con nombre y un método que devuelve una frase. package main; vuelve al espacio de nombres principal.

Lo que sorprende es que no hay ninguna palabra reservada para «clase». Un objeto de Perl es simplemente una referencia —casi siempre a un hash— que sabe a qué paquete pertenece, y eso es todo lo que hace bless. La orientación a objetos se añadió al lenguaje años después de su creación, y se construyó con las piezas que ya había en lugar de inventar sintaxis nueva.

La consecuencia práctica es que este estilo resulta verboso y no protege gran cosa: los campos del objeto son accesibles desde fuera. Por eso, en proyectos reales, casi nadie escribe objetos así a mano: se usa Moo o Moose, que aportan atributos declarativos, validación de tipos y herencia con mucho menos código. Conviene conocer la forma básica para leer código antiguo, y usar Moo para escribir nuevo.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)