5 our $VERSION = '0.50_09';
7 our $MouseVersion = $VERSION;
8 our $MooseVersion = '0.93';
10 sub MouseVersion{ $MouseVersion }
11 sub MooseVersion{ $MooseVersion }
18 Mouse::Spec - To what extent Mouse is compatible with Moose
22 This document describes Mouse version 0.50_09
28 printf "Mouse/%s is compatible with Moose/%s\n",
29 Mouse::Spec->MouseVersion, Mouse::Spec->MooseVersion;
33 Mouse is a subset of Moose. This document describes to what extend Mouse is
34 compatible with Moose.
36 =head2 Compatibility with Moose
38 The sugary API is highly compatible with Moose.
40 =head2 Incompatibility with Moose
42 =head3 Meta object protocols
44 Any MOP in Mouse has no attributes by default.
46 For this reason, C<< $metaclass->meta->make_immutable() >> does not yet work as you expect.
47 B<Don not make metaclasses immutable>.
49 =head3 Mouse::Meta::Instance
51 Meta instance mechanism is not implemented.
55 Role exclusion, C<exclude()>, is not implemented.
57 =head3 -metaclass in Mouse::Exporter
59 C<< use Mouse -metaclass => ... >> are not implemented.
60 Use C<< use Mouse -traits => ... >> instead.
62 =head3 Mouse::Meta::Attribute::Native
64 Native traits are not supported directly, but C<MouseX::NativeTraits> is
65 available on CPAN. Once you have installed it, you can use it as the same way
66 in Moose. That is, native traits are automatically loaded by Mouse.
68 See L<MouseX::NativeTraits> for details.
70 =head2 Notes about Moose::Cookbook
72 Many recipes in L<Moose::Cookbook> fit L<Mouse>, including:
78 L<Moose::Cookbook::Basics::Recipe1> - The (always classic) B<Point> example
82 L<Moose::Cookbook::Basics::Recipe2> - A simple B<BankAccount> example
86 L<Moose::Cookbook::Basics::Recipe3> - A lazy B<BinaryTree> example
90 L<Moose::Cookbook::Basics::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy
94 L<Moose::Cookbook::Basics::Recipe5> - More subtypes, coercion in a B<Request> class
98 L<Moose::Cookbook::Basics::Recipe6> - The augment/inner example
102 L<Moose::Cookbook::Basics::Recipe7> - Making Moose fast with immutable
106 L<Moose::Cookbook::Basics::Recipe8> - Builder methods and lazy_build
110 L<Moose::Cookbook::Basics::Recipe9> - Operator overloading, subtypes, and coercion
114 L<Moose::Cookbook::Basics::Recipe10> - Using BUILDARGS and BUILD to hook into object construction
118 L<Moose::Cookbook::Roles::Recipe1> - The Moose::Role example
122 L<Moose::Cookbook::Roles::Recipe2> - Advanced Role Composition - method exclusion and aliasing
126 L<Moose::Cookbook::Roles::Recipe3> - Applying a role to an object instance
130 L<Moose::Cookbook::Meta::Recipe2> - A meta-attribute, attributes with labels
134 L<Moose::Cookbook::Meta::Recipe3> - Labels implemented via attribute traits
138 L<Moose::Cookbook::Extending::Recipe3> - Providing an alternate base object class