Mouse::Exporter - make an import() and unimport() just like Mouse.pm
This document describes Mouse version 1.05
package MyApp::Mouse; use Mouse (); use Mouse::Exporter; Mouse::Exporter->setup_import_methods( as_is => [ 'has_rw', 'other_sugar', \&Some::Random::thing ], also => 'Mouse', ); sub has_rw { my $meta = caller->meta; my ( $name, %options ) = @_; $meta->add_attribute( $name, is => 'rw', %options, ); } # then later ... package MyApp::User; use MyApp::Mouse; has 'name'; has_rw 'size'; thing; no MyApp::Mouse;
This module encapsulates the exporting of sugar functions in a Mouse.pm
-like manner. It does this by building custom import
, unimport
methods for your module, based on a spec you provide.
Note that Mouse::Exporter
does not provide the with_meta
option, but you can easily get the metaclass by caller->meta
as "SYNOPSIS" shows.
setup_import_methods( ARGS )
build_import_methods( ARGS ) -> (\&import, \&unimport)