假設我從http://guest.engelschall.com/~sb/download/下載了Date::Calc
。如何使用分發目錄中的Perl模塊?
現在,我有一個腳本,xxx.pl
,它與我從上面的鏈接下載的untar-ed「東西」位於同一個目錄中。當解壓縮時,它會創建一個「Date-Calc-5.6」有噸的東西文件夾。
如何在xxx.pl
中包含Date::Calc
? (我不斷收到「無法在@INC中找到Date/Calc.pm」錯誤)
假設我從http://guest.engelschall.com/~sb/download/下載了Date::Calc
。如何使用分發目錄中的Perl模塊?
現在,我有一個腳本,xxx.pl
,它與我從上面的鏈接下載的untar-ed「東西」位於同一個目錄中。當解壓縮時,它會創建一個「Date-Calc-5.6」有噸的東西文件夾。
如何在xxx.pl
中包含Date::Calc
? (我不斷收到「無法在@INC中找到Date/Calc.pm」錯誤)
您必須安裝模塊。在大多數情況下,最好通過忽略源代碼tarball和using the cpan utility(on * nix)或PPM管理器(在ActivePerl for Windows上)來實現。
http://strawberryperl.com/是另一個(*,在我看來,上級*)perl for windows。它包含cpan及其所需的全部內容(* make和編譯器*) – Nifle 2009-09-02 07:30:04
您可以使用'cpan .'從當前目錄安裝.' – 2009-09-02 18:21:41
您首先需要install the module。
在您的@INC
語句中,指定包含Perl模塊的目錄。或者使用聲明:use lib "path"
能夠通過額外的use
語句加載模塊。
安裝是首選的方法,但如果你只是想不嘗試安裝,你可以做到這一點。
use strict;
use warnings;
use lib '/home/jeremy/Desktop/Date-Calc-5.8/lib';
use Date::Calc;
請將我的目錄切換到您的解壓縮位置。另請閱讀有關lib。
您不一定需要構建和安裝模塊。如果模塊是純Perl,並且構建過程不會創建任何新的代碼文件,那麼您可以在模塊「仍在框中」的情況下使用模塊。假設情況如此,有多種方法可以做到這一點。
編輯:它看起來不像Date::Calc
是純粹的Perl。在使用模塊之前,您可能至少必須構建它。
設置$PERL5LIB
環境變量以包括程序包分發目錄。
調用perl
與-I
開關
perl -I/the/distribution/dir myscript.pl
把-I交換機上的#!腳本(第一)行
#!/usr/bin/perl -I/the/distribution/dir
使用use lib
腳本
use lib qw(/the/distribution/dir);
use The::Package;
將分發目錄到@INC
變量
push @INC, "/the/distribution/dir";
require The::Package;
或
BEGIN {
push @INC, "/the/distribution/dir";
}
use The::Package;
您使用的是什麼操作系統?什麼版本的Perl? – innaM 2009-09-02 07:56:21
聽起來你已經下載了模塊並提取了tar文件。但是,它似乎並沒有實際安裝模塊。你將不得不做這一步。這個特定步驟取決於您的操作系統。所以我們需要知道曼尼評論的答案。 – Danny 2009-09-02 13:53:04
這一步不依賴於操作系統,只對Perl的版本略有影響。對於過去幾年中的任何perl,'cpan .'都會將該分發版安裝在當前工作目錄中,而不關心您所在的平臺。 – 2009-09-02 18:23:03