Moose - Moose, it's the new Camel
package Point; use Moose; has 'x' => (isa => Int(), is => 'rw'); has 'y' => (isa => Int(), is => 'rw'); sub clear { my $self = shift; $self->x(0); $self->y(0); } package Point3D; use Moose; extends 'Point'; has 'z' => (isa => Int()); after 'clear' => sub { my $self = shift; $self->{z} = 0; };
This is a very early release of this module, it still needs some fine tuning and lots more documentation. I am adopting the release early and release often approach with this module, so keep an eye on your favorite CPAN mirror!
Moose is an extension of the Perl 5 object system.
Yes, I know there has been an explosion recently of new ways to build object's in Perl 5, most of them based on inside-out objects, and other such things. Moose is different because it is not a new object system for Perl 5, but instead an extension of the existing object system.
Moose is built on top of Class::MOP, which is a metaclass system for Perl 5. This means that Moose not only makes building normal Perl 5 objects better, but is also provides brings with it the power of metaclass programming.
Moose doesn't stand for one thing in particular, however, if you want, here are a few of my favorites, feel free to contribute more :)
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.
Stevan Little <stevan@iinteractive.com>
Copyright 2006 by Infinity Interactive, Inc.
http://www.iinteractive.com
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Moose, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Moose
CPAN shell
perl -MCPAN -e shell install Moose
For more information on module installation, please visit the detailed CPAN module installation guide.