我是一名PHP程序員,剛剛分配了一些任務以工作在某些Perl上 - 我需要安裝模塊。在Windows上用於Perl的網站和站點 lib目錄位置
但是有沒有人可以在安裝模塊時澄清'lib'和'site \ lib'之間的區別。按照什麼標準安裝一個模塊而不是另一個?
這是真的與Windows相關(對不起,從來沒有在UNIX上工作)。
我正在使用Strawberry Perl 5.12.2.0。
我是一名PHP程序員,剛剛分配了一些任務以工作在某些Perl上 - 我需要安裝模塊。在Windows上用於Perl的網站和站點 lib目錄位置
但是有沒有人可以在安裝模塊時澄清'lib'和'site \ lib'之間的區別。按照什麼標準安裝一個模塊而不是另一個?
這是真的與Windows相關(對不起,從來沒有在UNIX上工作)。
我正在使用Strawberry Perl 5.12.2.0。
lib/
包含Perl附帶的模塊。 site/lib/
包含您自己安裝的模塊。 Perl本身並沒有區分這兩者。
如果site/lib/
對於全新安裝不是空的,這可能是因爲Strawberry在其發行版中包含通常不與Perl打包的模塊。 (我知道ActivePerl做的。)
SOmetimes它是相關的。有時你必須將env var PERL5LIB設置爲「site \ lib; lib」,有時候它是相反的。
實施例(如2011年4月,有效):
的Perl 5.12包括嘗試::微小0.6。
如果您要安裝Test :: Fatal,它希望Try :: Tiny 0.7+。
所以,你必須從CPAN更新:那麼你會得到嘗試::微小的0.09
但0.09只會被加載時,你就告訴Perl在site \ lib文件先看看。
[自Perl 5.12起,'site'目錄首先出現](http://p3rl.org/perl5120delta#@INC_reorganization) – daxim 2011-04-03 10:06:01
如果某些模塊包含在Perl內核中,它將被安裝到lib /並在那裏更新(5.12行爲相同,但計劃改變)。 – 2011-04-03 20:49:54
只是說在可能值得檢查@INC和/或PERL5LIB的地方。上週我在使用ActiveStateperl 5.12在windows上安裝了最新的模塊時,我感到困惑,我的腳本仍然沒有編譯。原來,我的腳本設置PERL5LIB,以便site \ lib排在第二位。也許這對OP也有幫助(Ikegami已經在同一時間提供了一個完美的答案) – knb 2011-04-03 22:39:59