summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/MooseX/Extension.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/MooseX/Extension.pm b/lib/MooseX/Extension.pm
index de49c2a..f69c181 100644
--- a/lib/MooseX/Extension.pm
+++ b/lib/MooseX/Extension.pm
@@ -4,7 +4,7 @@ use Moose::Exporter;
use Moose::Util::MetaRole;
use Data::OptList qw(mkopt_hash);
-my ($unimport, $args);
+my ($unimport, $on_unimport, $args);
sub import {
my $caller = caller;
@@ -15,10 +15,14 @@ sub import {
($import, $unimport) = Moose::Exporter->build_import_methods(
also => \@also,
);
+ $args->{-on_import}->($caller) if defined $args->{-on_import};
+ $on_unimport = delete $args->{-on_unimport};
goto $import;
}
sub unimport {
+ my $caller = caller;
+ $on_unimport->($caller) if defined $on_unimport;
goto $unimport;
}