package Mouse::Spec; use strict; use warnings; our $VERSION = '0.50'; our $MouseVersion = $VERSION; our $MooseVersion = '0.93'; sub MouseVersion{ $MouseVersion } sub MooseVersion{ $MooseVersion } 1; __END__ =head1 NAME Mouse::Spec - To what extent Mouse is compatible with Moose =head1 VERSION This document describes Mouse version 0.50 =head1 SYNOPSIS use Mouse::Spec; printf "Mouse/%s is compatible with Moose/%s\n", Mouse::Spec->MouseVersion, Mouse::Spec->MooseVersion; =head1 DESCRIPTION Mouse is a subset of Moose. This document describes to what extend Mouse is compatible with Moose. =head2 Compatibility with Moose The sugary API is highly compatible with Moose. =head2 Incompatibility with Moose =head3 Meta object protocols Any MOP in Mouse has no attributes. For this reason, C<< $metaclass->meta->make_immutable() >> does not yet work as you expect. B. =head3 Mouse::Meta::Instance Meta instance mechanism is not implemented. =head3 Role exclusion Role exclusion, C, is not implemented. =head3 -metaclass in Mouse::Exporter C<< use Mouse -metaclass => ... >> are not implemented. Use C<< use Mouse -traits => ... >> instead. =head2 Notes about Moose::Cookbook Many recipes in L fit L, including: =over 4 =item * L - The (always classic) B example =item * L - A simple B example =item * L - A lazy B example =item * L - Subtypes, and modeling a simple B class hierarchy =item * L - More subtypes, coercion in a B class =item * L - The augment/inner example =item * L - Making Moose fast with immutable =item * L - Builder methods and lazy_build =item * L - Operator overloading, subtypes, and coercion =item * L - Using BUILDARGS and BUILD to hook into object construction =item * L - The Moose::Role example =item * L - Advanced Role Composition - method exclusion and aliasing =item * L - Applying a role to an object instance =item * L - A meta-attribute, attributes with labels =item * L - Labels implemented via attribute traits =item * L - Providing an alternate base object class =back =head1 SEE ALSO L L L L =cut