From 5c9420df616f091d317fda0c0fce38359f736da6 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 10 Jul 2013 17:11:20 -0400 Subject: allow just building the exporter without installing it --- lib/Exporter/Lexical.pm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/Exporter/Lexical.pm b/lib/Exporter/Lexical.pm index 0a1ea5a..633da52 100644 --- a/lib/Exporter/Lexical.pm +++ b/lib/Exporter/Lexical.pm @@ -47,12 +47,24 @@ sub import { my $caller = caller; - my $import = sub { + my $import = build_exporter(\%opts, $caller); + + { + no strict 'refs'; + *{ $caller . '::import' } = $import; + } +} + +sub build_exporter { + my ($opts, $caller) = @_; + $caller //= caller; + + return sub { my $caller_stash = do { no strict 'refs'; \%{ $caller . '::' }; }; - my @exports = @{ $opts{'-exports'} }; + my @exports = @{ $opts->{'-exports'} }; my %exports = map { $_ => \&{ $caller_stash->{$_} } } @exports; for my $export (keys %exports) { @@ -65,11 +77,6 @@ sub import { # for now by injecting a dummy statement right after the 'use'. _lex_stuff(";1;"); }; - - { - no strict 'refs'; - *{ $caller . '::import' } = $import; - } } =head1 BUGS -- cgit v1.2.3-54-g00ecf