我刚刚遇到了同样的问题,这是一个带有描述的解决方案:
我正在做一个失败的“ cpan Bundle::CPAN ”。当我重新运行时,我发现 cpan 现在坏了,我无法安装任何模块。更糟糕的是,“ perl Makefile.PL ”也因同样的错误而死:
无法通过 /usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm 第 XXXX 行的包“CPAN::Meta”找到对象方法“new”
在直接测试 CPAN::Meta 模块时,我发现 Parse::CPAN::Meta 版本太旧了:
perl -MCPAN::Meta
Parse::CPAN::Meta 需要 1.44 版——这只是 1.40 版 / usr/lib/perl5/5.8.8/CPAN/Meta/Converter.pm 第 13 行。
为了能够更新 Parse::CPAN::Meta,我必须首先在 MakeMaker 中禁用 CPAN::Meta。我编辑了文件:
/usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm并在“ sub _has_cpan_meta {
”之后
添加了“ return 0; ”以制作:sub _has_cpan_meta {
return 0;
然后我可以正常安装 Parse::CPAN::Meta 使用“ cpan Parse::CPAN::Meta ”。之后,我确认 CPAN::Meta 正在工作“ perl -MCPAN::Meta ”并删除了我添加到/usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm的“ return 0 ” 。
嘿 presto,一切又开始工作了:)
希望对找到此线程的其他人有所帮助。