X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbase.pm;h=37f220f63a9641bc68eae51b062d49259587419a;hb=fd20da51661b685c54940aeb116a97beabf44d0f;hp=8db7d72c2578e428642ea5013eb8a3fc4ca2e6aa;hpb=2bc5db750f6eaca35ef355abbc8d4c5aba0531fa;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/base.pm b/lib/base.pm index 8db7d72..37f220f 100644 --- a/lib/base.pm +++ b/lib/base.pm @@ -44,8 +44,8 @@ L package base; -use 5.005_64; -our $VERSION = "1.01"; +use 5.006_001; +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 ($vglob = ${"$base\::"}{VERSION} and $vglob{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 $vglob = ${"$base\::"}{VERSION} and $vglob{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