Archive :: Extract Module在mac os x lion上的perl v5.12.3中发出警告

shi*_*umi 3 perl perl-module osx-lion

我正在使用与os x lion捆绑在一起的默认perl发行版(版本5.12.3).当我在带有-W模块的脚本中使用模块Archive :: Extract时,它会发出以下警告:

Subroutine version::declare redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 139.
Subroutine version::qv redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 140.
Subroutine version::vcmp redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 142.
Subroutine version::stringify redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 145.
Subroutine version::("" redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 146.
Subroutine version::new redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 147.
Subroutine version::parse redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 148.
Subroutine UNIVERSAL::VERSION redefined at /Library/Perl/5.12/darwin-thread-multi-2level/version.pm line 194.
Name "IPC::Cmd::I18N::en::Lexicon" used only once: possible typo at /Library/Perl/Updates/5.12.3/Locale/Maketext.p\
m line 444.
Name "Archive::Extract::I18N::en::Lexicon" used only once: possible typo at /Library/Perl/Updates/5.12.3/Locale/Ma\
ketext.pm line 444.
Name "Win32::Locale::Lexicon" used only once: possible typo at /System/Library/Perl/5.12/I18N/LangTags/Detect.pm l\
ine 140.
Name "Params::Check::I18N::en::Lexicon" used only once: possible typo at /Library/Perl/Updates/5.12.3/Locale/Maket\
ext.pm line 444.
Name "Module::Load::Conditional::I18N::en::Lexicon" used only once: possible typo at /Library/Perl/Updates/5.12.3/\
Locale/Maketext.pm line 444.
Run Code Online (Sandbox Code Playgroud)

我尝试在CPAN中运行升级.我甚至删除了我的.cpan目录并重新配置了我的CPAN.我测试了模块,似乎工作正常.但不知怎的,我对这些警告感到不舒服.

另一个让我发布这个问题的问题是我的其他一些模块没有升级(当然是通过CPAN).当我运行linux时,这从未发生在我身上.

Failed during this command:
 PMQS/BerkeleyDB-0.49.tar.gz                  : make NO
 MIKER/NetAddr-IP-4.058.tar.gz                : make_test NO
 DMR/DProf-19970614.tar.gz                    : make NO
 NWCLARK/perl-5.8.6.tar.gz                    : make NO isa perl
 JESSE/perl-5.13.9.tar.gz                     : make NO isa perl
 SHERZODR/Class-PObject-2.17.tar.gz           : make_test NO
 GBARR/IO-Tty-0.04.tar.gz                     : writemakefile NO '/usr/bin/perl Makefile.PL' returned status 65280
 DOY/Moose-2.0004.tar.gz                      : make_test NO
 RJBS/perl-5.15.2.tar.bz2                     : make NO isa perl
 FLORA/perl-5.15.4.tar.gz                     : make NO isa perl
Run Code Online (Sandbox Code Playgroud)

我应该尝试清理默认的perl安装并使用自制软件或macports进行全新安装吗?是否有一些明显的我遗漏了导致所有问题的东西?

谢谢你的帮助.

Sch*_*ern 9

来自perlrun ......

-W   Enables all warnings regardless of "no warnings" or $^W.
Run Code Online (Sandbox Code Playgroud)

你得到了你所要求的.

您不应该-W在正常操作中使用.有时模块会故意关闭某些事情的警告,因为他们知道他们正在做什么会触发它们.

试试吧-w.

至于你的其他问题......有时CPAN模块无法安装.更改Perl版本或操作系统可以做到这一点.您将不得不查看安装尝试的详细输出.或者您可以look Module::Name将其放入Module :: Name的源tarball中的shell中,您可以在其中手动测试和调试.

也就是说,建议让操作系统单独提供Perl并安装一个新的用于开发.这允许您进行任何您想要的更改,安装您想要的任何模块以及您想要的任何Perl版本,而不必担心操作系统混乱或在下一次操作系统升级中将您的升级放松.

perlbrew是处理这个问题的最好方法之一.