NAME¶
Mouse::Spec - To what extent Mouse is compatible with Moose
VERSION¶
This document describes Mouse version 0.99
SYNOPSIS¶
use Mouse::Spec;
printf "Mouse/%s is compatible with Moose/%s\n",
Mouse::Spec->MouseVersion, Mouse::Spec->MooseVersion;
DESCRIPTION¶
Mouse is a subset of Moose. This document describes to what extend Mouse is
compatible (and incompatible) with Moose.
Compatibility with Moose¶
Sugary APIs
The sugary APIs are highly compatible with Moose. Methods which have the same
name as Moose's are expected to be compatible with Moose's.
Meta object protocols
Meta object protocols are a subset of the counterpart of Moose. Their methods
which have the same name as Moose's are expected to be compatible with
Moose's. Feel free to use these methods even if they are not documented.
However, there are differences between Moose's MOP and Mouse's. For example,
meta object protocols in Mouse have no attributes by default, so
"$metaclass->meta->make_immutable()" will not work as you
expect.
Don not make metaclasses immutable.
Mouse::Meta::Instance
Meta instance mechanism is not implemented, so you cannot change the reftype of
Mouse objects in the same way as Moose.
Role exclusion
Role exclusion, "exclude()", is not implemented.
-metaclass in Mouse::Exporter
"use Mouse -metaclass => ..." are not implemented. Use "use
Mouse -traits => ..." instead.
Mouse::Meta::Attribute::Native
Native traits are not supported directly, but "MouseX::NativeTraits"
is available on CPAN. Once you have installed it, you can use it as the same
way in Moose. That is, native traits are automatically loaded by Mouse.
See MouseX::NativeTraits for details.
Notes about Moose::Cookbook¶
Many recipes in Moose::Cookbook fit Mouse, including:
- •
- Moose::Cookbook::Basics::Recipe1 - The (always classic)
Point example
- •
- Moose::Cookbook::Basics::Recipe2 - A simple
BankAccount example
- •
- Moose::Cookbook::Basics::Recipe3 - A lazy BinaryTree
example
- •
- Moose::Cookbook::Basics::Recipe4 - Subtypes, and modeling a
simple Company class hierarchy
- •
- Moose::Cookbook::Basics::Recipe5 - More subtypes, coercion
in a Request class
- •
- Moose::Cookbook::Basics::Recipe6 - The augment/inner
example
- •
- Moose::Cookbook::Basics::Recipe7 - Making Moose fast with
immutable
- •
- Moose::Cookbook::Basics::Recipe8 - Builder methods and
lazy_build
- •
- Moose::Cookbook::Basics::Recipe9 - Operator overloading,
subtypes, and coercion
- •
- Moose::Cookbook::Basics::Recipe10 - Using BUILDARGS and
BUILD to hook into object construction
- •
- Moose::Cookbook::Roles::Recipe1 - The Moose::Role
example
- •
- Moose::Cookbook::Roles::Recipe2 - Advanced Role Composition
- method exclusion and aliasing
- •
- Moose::Cookbook::Roles::Recipe3 - Applying a role to an
object instance
- •
- Moose::Cookbook::Meta::Recipe2 - A meta-attribute,
attributes with labels
- •
- Moose::Cookbook::Meta::Recipe3 - Labels implemented via
attribute traits
- •
- Moose::Cookbook::Extending::Recipe3 - Providing an
alternate base object class
SEE ALSO¶
Mouse
Moose
Moose::Manual
Moose::Cookbook