Mouse::XS - A Mouse guts in XS
This document describes Mouse version 2.0.0
Mouse has an optional XS implementation, which is automatically built and used if available. According to benchmarks, this is about 2 times faster than Mouse::PurePerl.
The XS implementation are selected by default, but you can force it by passing the --xs option to Makefile.PL.
--xs
perl Makefile.PL --xs
If you do not want to build the XS implementation, you can pass the --pp option to Makefile.PL.
--pp
perl Makefile.PL --pp
Or if you use cpanm (>= 1.7), you can give --pp option to cpanm.
cpanm
cpanm --pp Mouse
It can be used to enable the use of Mouse::PurePerl in order to test and debug programs that use Mouse.
There are some Mouse::XS specific features.
When you take a reference from Mouse getters, like $ref = \$obj->foo, the $ref refers \$obj->{foo}. That is, mutating $$ref also alters $obj->{foo}. The behavior may confuse you so you'd better avoid to take a reference directly from getters.
$ref = \$obj->foo
$ref
\$obj->{foo}
$$ref
$obj->{foo}
See https://rt.cpan.org/Ticket/Display.html?id=82945 for details.
The XS implementation requires Perl 5.8.1 or later, and a C compiler.
Mouse
Mouse::PurePerl
To install Mouse, copy and paste the appropriate command in to your terminal.
cpanm Mouse
CPAN shell
perl -MCPAN -e shell install Mouse
For more information on module installation, please visit the detailed CPAN module installation guide.