【问题标题】:Archive::Extract Module gives warnings in perl v5.12.3 on mac os x lionArchive::Extract 模块在 mac os x lion 上的 perl v5.12.3 中给出警告
【发布时间】:2011-12-09 16:22:59
【问题描述】:

我正在使用与 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.

我尝试在 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

我应该尝试清理默认的 perl 安装并使用 homebrew 或 macports 进行全新安装吗?有什么明显的我遗漏的东西导致了所有问题吗?

感谢您的帮助。

【问题讨论】:

    标签: perl osx-lion perl-module


    【解决方案1】:

    来自perlrun...

    -W   Enables all warnings regardless of "no warnings" or $^W.
    

    你得到了你想要的。

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

    改用-w

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

    也就是说,建议不要使用 Perl 提供的操作系统,而是安装一个新的用于开发。这使您可以进行任何您想要的更改、安装您想要的任何模块以及您想要的任何版本的 Perl,而不会冒弄乱您的操作系统或让您的升级在下一次操作系统升级中失败的风险。

    perlbrew 是处理该问题的最佳方法之一。

    【讨论】:

    • 感谢您的回复。我确实用-w尝试过。它给出了一个关于 Win32::Locale::Lexicon 的相当合理的警告,我愿意忽略它。我会给 perlbrew 一个机会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 2012-03-22
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多