Mark Veltzer reports me that one of my packages in the DocSet
distribution causes an annoyance in CPAN.pm's 'r' mode, when it checks
all the installed modules whether they should be updated, due to a bug
in MM. What happens is:
Could not eval '
package ExtUtils::MakeMaker::_version;
no strict;
local $File::Spec::VERSION;
$File::Spec::VERSION=undef; do {
unless ($File::Spec::VERSION >= $min_version) {
}; $File::Spec::VERSION
' in /usr/lib/perl5/site_perl/5.6.1/DocSet/5005compat.pm:
Missing right curly or square bracket at (eval 204) line 10, at end of line
syntax error at (eval 204) line 10, at EOF
which you can reproduce with:
perl -MExtUtils::MakeMaker -le 'print MM->parse_version(shift)' test.pm
where test.pm includes a shrinked (DocSet/5005compat.pm):
package Foo;
eval { require File::Spec::Functions; } or
die "this is only Perl $], you need to install File-Spec from CPAN";
my $min_version = 0.82;
unless ($File::Spec::VERSION >= $min_version) {
die "you need to install File-Spec-$min_version or higher from
CPAN";
}
when it tries to eval:
$File::Spec::VERSION=undef; do {
unless ($File::Spec::VERSION >= $min_version) {
};
it certainly fails. And this is a bug in makemaker, not my code.
Moreover this bug doesn't exist in MM 6.03, but does exist in 6.05 and
versions prior to 6.00.
IMHO, it should look for either $VERSION, or ${ __PACKAGE__ .
'::VERSION'}, but certainly not for what happens now. And it shouldn't
be fatal, meaning you have to wrap it in eval "string".
In any case, here is the original file that the problem was discovered
with: http://search.cpan.org/src/STAS/DocSet-0.14/lib/DocSet/5005compat.pm
Thanks.
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com