NAME
Moose - Moose, it's the new Camel
SYNOPSIS
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;
};
CAVEAT
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!
DESCRIPTION
Moose is an extension of the Perl 5 object system.
Another 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.
What does Moose stand for??
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 :)
BUGS
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.
AUTHOR
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE
Copyright 2006 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.