2009-09-02 29 views
1

假設我從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」錯誤)

+3

您使用的是什麼操作系統?什麼版本的Perl? – innaM 2009-09-02 07:56:21

+1

聽起來你已經下載了模塊並提取了tar文件。但是,它似乎並沒有實際安裝模塊。你將不得不做這一步。這個特定步驟取決於您的操作系統。所以我們需要知道曼尼評論的答案。 – Danny 2009-09-02 13:53:04

+1

這一步不依賴於操作系統,只對Perl的版本略有影響。對於過去幾年中的任何perl,'cpan .'都會將該分發版安裝在當前工作目錄中,而不關心您所在的平臺。 – 2009-09-02 18:23:03

回答

2

您必須安裝模塊。在大多數情況下,最好通過忽略源代碼tarball和using the cpan utility(on * nix)或PPM管理器(在ActivePerl for Windows上)來實現。

+5

http://strawberryperl.com/是另一個(*,在我看來,上級*)perl for windows。它包含cpan及其所需的全部內容(* make和編譯器*) – Nifle 2009-09-02 07:30:04

+1

您可以使用'cpan .'從當前目錄安裝.' – 2009-09-02 18:21:41

7

您首先需要install the module

在您的@INC語句中,指定包含Perl模塊的目錄。或者使用聲明:use lib "path"能夠通過額外的use語句加載模塊。

1

安裝是首選的方法,但如果你只是想不嘗試安裝,你可以做到這一點。

use strict; 
use warnings; 
use lib '/home/jeremy/Desktop/Date-Calc-5.8/lib'; 
use Date::Calc; 

請將我的目錄切換到您的解壓縮位置。另請閱讀有關lib

1

您不一定需要構建和安裝模塊。如果模塊是純Perl,並且構建過程不會創建任何新的代碼文件,那麼您可以在模塊「仍在框中」的情況下使用模塊。假設情況如此,有多種方法可以做到這一點。

編輯:它看起來不像Date::Calc是純粹的Perl。在使用模塊之前,您可能至少必須構建它。

  1. 設置$PERL5LIB環境變量以包括程序包分發目錄。

  2. 調用perl-I開關

    perl -I/the/distribution/dir myscript.pl

  3. 把-I交換機上的#!腳本(第一)行

    #!/usr/bin/perl -I/the/distribution/dir

  4. 使用use lib腳本

    use lib qw(/the/distribution/dir);

    use The::Package;

  5. 將分發目錄到@INC變量

    push @INC, "/the/distribution/dir";

    require The::Package;

BEGIN { 
    push @INC, "/the/distribution/dir"; 
} 
use The::Package; 
相關問題