guard against double import
Matt S Trout [Tue, 16 Nov 2010 00:46:08 +0000 (00:46 +0000)]
lib/Moo.pm
lib/Moo/Role.pm
lib/Role/Tiny.pm

index 2f27387..cc8de95 100644 (file)
@@ -12,6 +12,7 @@ sub import {
   my $target = caller;
   my $class = shift;
   strictures->import;
+  return if $MAKERS{$target}; # already exported into this package
   *{_getglob("${target}::extends")} = sub {
     _load_module($_) for @_;
     *{_getglob("${target}::ISA")} = \@_;
index 7a7cae1..c27c025 100644 (file)
@@ -11,6 +11,7 @@ our %INFO;
 sub import {
   my $target = caller;
   strictures->import;
+  return if $INFO{$target}; # already exported into this package
   # get symbol table reference
   my $stash = do { no strict 'refs'; \%{"${target}::"} };
   *{_getglob "${target}::has"} = sub {
index ebf9807..844272f 100644 (file)
@@ -20,6 +20,7 @@ sub import {
   my $target = caller;
   my $me = $_[0];
   strictures->import;
+  return if $INFO{$target}; # already exported into this package
   # get symbol table reference
   my $stash = do { no strict 'refs'; \%{"${target}::"} };
   # install before/after/around subs