diff options
Diffstat (limited to 'lib/base.pm')
-rw-r--r-- | lib/base.pm | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/base.pm b/lib/base.pm index c6d8cca4a7..37f220f63a 100644 --- a/lib/base.pm +++ b/lib/base.pm @@ -45,7 +45,7 @@ L<fields> package base; use 5.006_001; -our $VERSION = "1.02"; +our $VERSION = "1.03"; sub import { my $class = shift; @@ -54,9 +54,10 @@ sub import { foreach my $base (@_) { next if $pkg->isa($base); - push @{"$pkg\::ISA"}, $base; my $vglob; - unless (${*{"$base\::VERSION"}{SCALAR}}) { + if ($vglob = ${"$base\::"}{VERSION} and *$vglob{SCALAR}) { + $$vglob = "-1, set by base.pm" unless defined $$vglob; + } else { eval "require $base"; # Only ignore "Can't locate" errors from our eval require. # Other fatal errors (syntax etc) must be reported. @@ -67,9 +68,9 @@ sub import { "\t(Perhaps you need to 'use' the module ", "which defines that package first.)"); } - ${"$base\::VERSION"} = "-1, set by base.pm" - unless ${*{"$base\::VERSION"}{SCALAR}}; + ${"$base\::VERSION"} = "-1, set by base.pm" unless defined ${"$base\::VERSION"}; } + push @{"$pkg\::ISA"}, $base; # A simple test like (defined %{"$base\::FIELDS"}) will # sometimes produce typo warnings because it would create |