Adam Kennedy opened a ticket against Module::Build, which David Golden correctly interpreted as being version.pm's fault (in the pure Perl release only). I've committed a change (and test) that will be part of version-0.77. The matching fix needs to be applied to Module::Build's inline code.
John === lib/Module/Build/Version.pm ================================================================== --- lib/Module/Build/Version.pm (revision 2640) +++ lib/Module/Build/Version.pm (local) @@ -628,15 +628,17 @@ my $class = ref($obj) || $obj; no strict 'refs'; - eval "require $class" unless %{"$class\::"}; # already existing - return undef if $@ =~ /Can't locate/ and not defined $req; + unless (%{"$class\::"}) { # class not already loaded + eval "require $class"; + return undef if $@ =~ /Can't locate/ and not defined $req; + } if ( not %{"$class\::"} and $] >= 5.008) { # file but no package require Carp; Carp::croak( "$class defines neither package nor VERSION" ."--version check failed"); } - + my $version = eval "\$$class\::VERSION"; if ( defined $version ) { local $^W if $] <= 5.008;