Mouse::XS(3pm) User Contributed Perl Documentation Mouse::XS(3pm)

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.

perl Makefile.PL --xs

If you do not want to build the XS implementation, you can pass the "--pp" option to Makefile.PL.

perl Makefile.PL --pp

Or if you use "cpanm" (>= 1.7), you can give "--pp" option to "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.

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

2023-07-26 perl v5.38.0