2015-12-21 104 views
1

我有這樣的目錄結構:如何組織Perl模塊

/path/to/lib/perl5/5.22.1 

我曾經在一個特定的格式安裝在目錄中的一些Perl模塊:

ls 
Data-UUID IPC-System-Simple JSON Log-Message Math-Gradient Term-UI 

例如,如果你去裏面JSON,目錄如下:

/path/to/lib/perl5/5.22.1/JSON/2.53 

我的所有模塊都舉辦這樣的:

/path/to/lib/perl5/5.22.1/Module-name/Module-version/... 

我已經加入/path/to/lib/perl5/5.22.1我PERL5LIB這樣的:

export PERL5LIB=/path/to/lib/perl5/5.22.1:$PERL5LIB 

但我的腳本無法找到Perl模塊。你認爲目錄結構是一個問題嗎?我只是製作了這個結構,以便將它組織爲perl-module-name/module-version。建議非常感謝。

謝謝!

回答

7

鑑於列出的目錄的名稱:

數據UUID IPC-系統簡單的JSON日誌信息數學的梯度項的UI

看起來你沒有完全安裝了模塊。看起來您已經下載了軟件包壓縮包,將其解壓縮,然後不運行安裝程序

你需要進入每個目錄和:

perl Makefile.PL 
make 
make test 
make install 

更重要的是,使用cpanm或另一種下載模塊的程序安裝它們,解決他們的依賴關係,並安裝它們。

+0

其實我確實運行過安裝程序。這些是目錄的名稱,因爲我將我的PREFIX設置爲perl Makefile.PL,以便它創建一個模塊目錄名稱/ version/installation-happens-here。 –

+0

然後你需要在你的PERL5LIB路徑中包含你的'module directory name/version/installation-happens-here'目錄下的*每一個*目錄。 – Quentin

+0

是的,這正是我所困惑的。我認爲我可以爲安裝創建特定的目錄,只需將父文件夾名稱放在PERL5LIB路徑中,並且perl將從父文件夾開始搜索模塊,等等。那麼,如果我只想要一個單獨的庫文件夾,最佳做法是什麼? –

4

Perl在PERL5LIB指定的路徑內需要一個特定的目錄結構。例如IPC-System-Simple必須安裝在文件IPC/System/Simple.pm中。等等。你不能只是去彌補目錄結構,並希望Perl能制定出你的結構並找到它需要的東西

+0

好吧,我現在明白了。謝謝! –