[libexporter-tiny-perl] 02/05: support for -as => CODE
Jonas Smedegaard
dr at jones.dk
Tue Feb 24 14:56:54 UTC 2015
This is an automated email from the git hooks/post-receive script.
js pushed a commit to tag 0.043_01
in repository libexporter-tiny-perl.
commit 0068fc58f4c7f5de6726a138afbba8a256dfda17
Author: Toby Inkster <mail at tobyinkster.co.uk>
Date: Sat Nov 8 20:11:04 2014 +0000
support for -as => CODE
---
lib/Exporter/Tiny.pm | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/lib/Exporter/Tiny.pm b/lib/Exporter/Tiny.pm
index 6e77338..5e437da 100644
--- a/lib/Exporter/Tiny.pm
+++ b/lib/Exporter/Tiny.pm
@@ -116,7 +116,7 @@ sub _exporter_merge_opts
$tag_opts = {} unless ref($tag_opts) eq q(HASH);
_croak('Cannot provide an -as option for tags')
- if exists $tag_opts->{-as};
+ if exists $tag_opts->{-as} && ref $tag_opts->{-as} ne 'CODE';
my $optlist = mkopt(\@stuff);
for my $export (@$optlist)
@@ -239,16 +239,23 @@ sub _exporter_install_sub
my $into = $globals->{into};
my $installer = $globals->{installer} || $globals->{exporter};
- $name = $value->{-as} || $name;
- unless (ref($name) eq q(SCALAR))
+ $name =
+ ref $globals->{as} ? $globals->{as}->($name) :
+ ref $value->{-as} ? $value->{-as}->($name) :
+ exists $value->{-as} ? $value->{-as} :
+ $name;
+
+ return unless defined $name;
+
+ unless (ref($name))
{
my ($prefix) = grep defined, $value->{-prefix}, $globals->{prefix}, q();
my ($suffix) = grep defined, $value->{-suffix}, $globals->{suffix}, q();
$name = "$prefix$name$suffix";
}
- return ($$name = $sym) if ref($name) eq q(SCALAR);
- return ($into->{$name} = $sym) if ref($into) eq q(HASH);
+ return ($$name = $sym) if ref($name) eq q(SCALAR);
+ return ($into->{$name} = $sym) if ref($into) eq q(HASH);
no strict qw(refs);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libexporter-tiny-perl.git
More information about the Pkg-perl-cvs-commits
mailing list