7 our $MouseVersion = $VERSION;
8 our $MooseVersion = '1.10';
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.68
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 (and incompatible) with Moose.
36 =head2 Compatibility with Moose
38 The sugary API is highly compatible with Moose. Methods which have the
39 same name as Moose's are expected to be compatible with Moose's.
41 =head2 Incompatibility with Moose
43 =head3 Meta object protocols
45 Meta object protocols are a subset of the counterpart of Moose.
46 Their methods which have the same name as Moose's are expected to be
47 compatible with Moose's. Feel free to use these methods even if they
50 However, meta object protocols in Mouse have no attributes by default,
51 so C<< $metaclass->meta->make_immutable() >> will not work as you expect.
52 B<Don not make metaclasses immutable>.
54 =head3 Mouse::Meta::Instance
56 Meta instance mechanism is not implemented.
60 Role exclusion, C<exclude()>, is not implemented.
62 =head3 -metaclass in Mouse::Exporter
64 C<< use Mouse -metaclass => ... >> are not implemented.
65 Use C<< use Mouse -traits => ... >> instead.
67 =head3 Mouse::Meta::Attribute::Native
69 Native traits are not supported directly, but C<MouseX::NativeTraits> is
70 available on CPAN. Once you have installed it, you can use it as the same way
71 in Moose. That is, native traits are automatically loaded by Mouse.
73 See L<MouseX::NativeTraits> for details.
75 =head2 Notes about Moose::Cookbook
77 Many recipes in L<Moose::Cookbook> fit L<Mouse>, including:
83 L<Moose::Cookbook::Basics::Recipe1> - The (always classic) B<Point> example
87 L<Moose::Cookbook::Basics::Recipe2> - A simple B<BankAccount> example
91 L<Moose::Cookbook::Basics::Recipe3> - A lazy B<BinaryTree> example
95 L<Moose::Cookbook::Basics::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy
99 L<Moose::Cookbook::Basics::Recipe5> - More subtypes, coercion in a B<Request> class
103 L<Moose::Cookbook::Basics::Recipe6> - The augment/inner example
107 L<Moose::Cookbook::Basics::Recipe7> - Making Moose fast with immutable
111 L<Moose::Cookbook::Basics::Recipe8> - Builder methods and lazy_build
115 L<Moose::Cookbook::Basics::Recipe9> - Operator overloading, subtypes, and coercion
119 L<Moose::Cookbook::Basics::Recipe10> - Using BUILDARGS and BUILD to hook into object construction
123 L<Moose::Cookbook::Roles::Recipe1> - The Moose::Role example
127 L<Moose::Cookbook::Roles::Recipe2> - Advanced Role Composition - method exclusion and aliasing
131 L<Moose::Cookbook::Roles::Recipe3> - Applying a role to an object instance
135 L<Moose::Cookbook::Meta::Recipe2> - A meta-attribute, attributes with labels
139 L<Moose::Cookbook::Meta::Recipe3> - Labels implemented via attribute traits
143 L<Moose::Cookbook::Extending::Recipe3> - Providing an alternate base object class