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

Changes for version 0.19

  • ~~ More documentation updates ~~
  • Moose::Util::TypeConstraints
    • 'type' now supports messages as well thanks to phaylon for finding this
      • added tests for this
    • added &list_all_type_constraints and &list_all_builtin_type_constraints functions to facilitate introspection.
  • Moose::Meta::Attribute
    • fixed regexp 'handles' declarations to build the list of delegated methods correctly (and not override important things like &new) thanks to ashleyb for finding this
      • added tests and docs for this
    • added the 'documentation' attributes so that you can actually document your attributes and inspect them through the meta-object.
      • added tests and docs for this
  • Moose::Meta::Class
    • when loading custom attribute metaclasses it will first look in for the class in the Moose::Meta::Attribute::Custom::$name, and then default to just loading $name.
      • added tests and docs for this
  • Moose::Meta::TypeConstraint
    • type constraints now stringify to their names.
      • added test for this
  • misc.
    • added tests to assure we work with Module::Refresh
    • added stricter test skip logic in the Moose POOP test, ask Rob Kinyon why.
      • *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)

Changes for version 0.18_001

  • !! You must have Class::MOP 0.37_001 !! !! for this developer release to work !!
  • This release was primarily adding the immutable feature to Moose. An immutable class is one which you promise not to alter. When you set the class as immutable it will perform various bits of memoization and inline certain part of the code (constructors, destructors and accessors). This minimizes (and in some cases totally eliminates) one of Moose's biggest performance hits. This feature is not on by default, and is 100% optional. It has several configurable bits as well, so you can pick and choose to your specific needs.
  • The changes involved in this were fairly wide and highly specific, but 100% backwards compatible, so I am not going to enumerate them here. If you are truely interested in what was changed, please do a diff :)

Documentation

How to cook a Moose
Frequenty asked questions about Moose
The (always classic) Point 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
For when things go wrong with Moose

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
The Moose Type Coercion metaclass
The Moose Type Constraint metaclass
A union of Moose type constraints
The base object for Moose
The Moose Role
Type constraint system for Moose