2011-12-09 77 views
3

我使用的是與os x lion捆綁在一起的默認perl發行版(版本5.12.3)。當我在腳本中使用模塊存檔::提取與-W模塊它提供了以下警告:Archive :: Extract Module在mac os x lion上提供了perl v5.12.3中的警告

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安裝並使用自制軟件或macports進行乾淨安裝嗎?是否有什麼明顯的我缺少這是造成所有問題?

感謝您的幫助。

回答

9

perlrun ...

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

你有你的要求的。

正常操作時不應使用-W。有時候模塊故意關閉某些事情的警告,因爲他們知道他們在做什麼會觸發它們。

改爲嘗試-w

至於你的其他問題...有時CPAN模塊無法安裝。 Perl版本或操作系統的改變可以做到這一點。您必須查看安裝嘗試的詳細輸出。或者,您可以將look Module::Name拖放到Module :: Name的源代碼壓縮包中的shell中,您可以在其中手動進行測試和調試。

也就是說,建議離開操作系統提供Perl,並安裝一個新的開發。這允許你做任何你想要的改變,安裝你想要的任何模塊和你想要的任何版本的Perl,而不用冒着弄亂你的操作系統的風險,或者在下一次操作系統升級時冒着升級的風險。

perlbrew是處理該問題的最佳方法之一。

+0

感謝您的回覆。我確實用-w來試試。它給出了一個關於Win32 :: Locale :: Lexicon的相當合理的警告,我願意忽略它。我會給perlbrew一個鏡頭。 – shibumi