Contents
Moose (Perl)
Moose is an extension of the object system of the Perl programming language. Its stated purpose is to bring modern object-oriented programming language features to Perl 5, and to make object-oriented Perl programming more consistent and less tedious.
Features
Moose is built on, a metaobject protocol (MOP). Using the MOP, Moose provides complete type introspection for all Moose-using classes.
Classes
Moose allows a programmer to create classes:
Attributes
An attribute is a property of the class that defines it.
Roles
Roles in Moose are based on traits. They perform a similar task as mixins, but are composed horizontally rather than inherited. They are also somewhat like interfaces, but unlike some implementations of interfaces they can provide a default implementation. Roles can be applied to individual instances as well as Classes.
Extensions
There are a number of Moose extension modules on CPAN. there are 855 modules in 266 distributions in the MooseX namespace. Most of them can be optionally installed with the Task::Moose module.
Examples
This is an example of a class and its subclass : There is a new method in the class so the method of the same name defined in the class is not invoked in the case of instances. The method on the other hand is not replaced but extended in the subclass, so both methods are run in the correct order. This is the same using the extension:
This article is derived from Wikipedia and licensed under CC BY-SA 4.0. View the original article.
Wikipedia® is a registered trademark of the
Wikimedia Foundation, Inc.
Bliptext is not
affiliated with or endorsed by Wikipedia or the
Wikimedia Foundation.