The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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 :)

Makes Other Object Systems Envious
Makes Object Orientation So Easy

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.

http://www.iinteractive.com

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.