On Thu, Jul 24, 2003 at 01:39:19PM -0500, [EMAIL PROTECTED] wrote:
> Cpanplus shows it like this
>
> 4 (nothing) 5.65 ExtUtils::MM_VMS MSCHWERN
That's possible. Older versions of MM_VMS (circa 5.6.1) had no version #.
> t/MM_VMS......................skipped
> all skipped: This is not VMS
That's normal. You're not on VMS so it doesn't run the VMS specific tests.
> ...
> Successfully installed ExtUtils::MM_VMS
> All modules successfully installed.
The "..." bit would be rather important to see. It should show the full
MakeMaker installation. Its possible you don't have CPANPLUS in verbose
mode so its supressing that information.
>From that information we can figure out where its actually getting installed.
> > What might be happening is your new installation is getting
> > installed in a different spot than your old one and the old
> > one is "shadowing". That is, the old version is coming
> > earlier than the new one in @INC so its getting picked up.
>
> # find /usr/local/lib/perl5 -name MM_VMS.pm
> /usr/local/lib/perl5/5.8.0/ExtUtils/MM_VMS.pm
> #
>
> Nope. Only one file.
Is there anything in @INC which is not in /usr/local/lib/perl5?
What's the $VERSION in that file?
> Normally if a file doesn't have a version I don't think it shows up.
That would be a serious bug in CPANPLUS. Files without versions should show
up, they just have no version.
> This file shows up but does not present a version either under 'cpan' or 'cpanp'.
> I'm thinking it may have something to do with the parentheses around $VERSION in
> MM_VMS.pm? None of the others have that...
I really doubt that's it. CPAN.pm uses the parse_version() method from
MakeMaker and its quite a bit more robust than that. For example:
~ $ perl5.8.0 -MExtUtils::MakeMaker -wle 'print MM->parse_version(shift)'
~/devel/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
5.68
> I've also started getting this error in 'cpan' ONLY:
>
> Could not eval '
> package ExtUtils::MakeMaker::_version;
> no strict;
>
> local $VERSION;
> $VERSION=undef; do {
> \$VERSION = $CPANPLUS::Internals::VERSION;
> }; $VERSION
> ' in /usr/local/lib/perl5/site_perl/5.8.0/CPANPLUS/Configure.pm: Can't
> modify single ref constructor in scalar assignment at (eval 110) line 7, at EOF
This I can reproduce and its unrelated to the MM_VMS problem above.
That's a bug in CPANPLUS::Configure. In fact, there's several of them.
They do this:
\$VERSION = $CPANPLUS::Internals::VERSION;
Which, AFAIK, shouldn't work:
~ $ perl -wle '$Foo::VERSION = 42; \$VERSION = $Foo::VERSION; print $VERSION'
Can't modify single ref constructor in scalar assignment at -e line 1, near
"$Foo::VERSION;"
Execution of -e aborted due to compilation errors.
So the error is legit. What they should try instead is:
*VERSION = \$CPANPLUS::Internals::VERSION;
but there's *another* bug in there. That CPANPLUS::Internals is never
loaded by CPANPLUS::Internals! More than likely it just happens to be
working because whenever they load CPANPLUS::Configure they also happen
to have CPANPLUS::Internals loaded. And since MakeMaker has to see all
the information necessary to figure out the version on one line...
require CPANPLUS::Internals; *VERSION = \$CPANPLUS::Internals::VERSION;
but its *still* not correct because if you look at CPANPLUS/Configure.pm
you'll see that this is in fact the $VERSION for CPANPLUS::Config!
CPANPLUS::Configure has no $VERSION.
*whew*
I've reported this: http://rt.cpan.org/NoAuth/Bug.html?id=3037
--
The key, my friend, is hash browns.
http://www.goats.com/archive/980402.html