Alce (Perl)


Moose es una extensión del sistema de objetos del lenguaje de programación Perl . Su propósito declarado [1] es traer funciones modernas de lenguaje orientado a objetos a Perl 5 y hacer que la programación Perl orientada a objetos sea más consistente y menos tediosa.

Moose se basa en Class::MOP, un protocolo de metaobjetos (también conocido como MOP). Usando el MOP, Moose proporciona una introspección completa para todas las clases que usan Moose.

Los roles en Moose se basan en rasgos . Realizan una tarea similar a los mixins , pero están compuestos horizontalmente en lugar de heredados. También son algo así como interfaces , pero a diferencia de las interfaces, pueden proporcionar una implementación predeterminada. Los roles se pueden aplicar tanto a instancias individuales como a clases.

Hay varios módulos de extensión de Moose en CPAN . A partir de septiembre de 2012 , hay 855 módulos en 266 distribuciones en el espacio de nombres MooseX. [2] La mayoría de ellos se pueden instalar opcionalmente con el módulo Task::Moose. [3]

Hay un nuevo set_to()método en la Point3Dclase por lo que el método del mismo nombre definido en la Pointclase no se invoca en el caso de las Point3Dinstancias. El clear()método, por otro lado, no se reemplaza sino que se amplía en la subclase, por lo que ambos métodos se ejecutan en el orden correcto.