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

Changes for version 0.31

  • Moose::Meta::Attribute
    • made the +attr syntax handle extending types with parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')" now works if the original foo is an ArrayRef.
      • added tests for this.
    • delegation now works even if the attribute does not have a reader method using the get_read_method_ref method from Class::MOP::Attribute.
      • added tests for this
      • added docs for this
  • Moose::Util::TypeConstraints
    • passing no "additional attribute info" to &find_or_create_type_constraint will no longer attempt to create an __ANON__ type for you, instead it will just return undef.
      • added docs for this

Documentation

How to cook a Moose
Frequently asked questions about Moose
The (always classic) Point example.
The meta-attribute example
A simple BankAccount example
A lazy BinaryTree example
Subtypes, and modeling a simple Company class hierarchy
More subtypes, coercion in a Request class
The Moose::Role example
The augment/inner example
Snippets of code for using Types and Type Constraints
For when things go wrong with Moose
Formal spec for Role behavior

Modules

A complete modern object system for Perl 5
The Moose attribute metaclass
The Moose metaclass
The Moose Instance metaclass
A Moose Method metaclass
A Moose Method metaclass for accessors
Method Meta Object for constructors
Method Meta Object for destructors
A Moose Method metaclass for overriden methods
The Moose Role metaclass
A Moose Method metaclass for Roles
A Moose metaclass for required methods in Roles
The Moose Type Coercion metaclass
The Moose Type Coercion metaclass for Unions
The Moose Type Constraint metaclass
Higher Order type constraints for Moose
A union of Moose type constraints
The base object for Moose
The Moose Role
Utilities for working with Moose classes
Type constraint system for Moose
Test functions for Moose specific features