2008-12-10 121 views
8

我在我的主機上安裝了幾個Perl模塊~/perl,我該如何將它們添加到Perl模塊路徑中?設置PERL5LIBunshift@INC的路徑肯定可行,但環境變量作爲CGI腳本運行時不起作用,並且@INC方式不是非常便於攜帶。有沒有更好的辦法?這必須是一個常見問題,我錯過了什麼?如何爲CGI腳本的模塊設置Perl的包含路徑?

回答

6

PERL5LIB對CGI腳本來說工作得很好。您只需在正確的地方設置變量,例如服務器配置。你使用哪個網絡服務器?對於Apache,我使用mod_env中的SetEnv指令。

@INC是便攜式的。你放在那裏的路徑在每臺機器上可能都不一樣,但你不應該對with變量本身有問題。

你有沒有在perlfaq8閱讀FAQ條目:

+0

謝謝,我不知道SetEnv指令。這正是我一直在尋找的東西。 – zoul 2008-12-11 07:32:44

9

一個更清潔的方式做到這一點海事組織:

use lib "/path/" ; 

還有其他有趣和良好的方法來做到這一點,可以在這裏找到:

http://www.slideshare.net/pfig/cpan-training-presentation/

此外,重:CGI腳本,你可以爲你的CGI Env定義PERL5LIB路徑,它只取決於你的虛擬主機。

某些虛擬主機允許對CGI環境的env變量進行特定的控制,而且您必須設置它們,其他人可能有一個「允許」列表,允許變量在開始時顯示在本地範圍內。

可能有助於瞭解如何在特定的HTTP服務器上執行此操作。

還有一個選項,如果設置ENV是不合你的口味:local::lib

自動搜索一些預定義的路徑。

+1

+1只是需要注意的是PERL5LIB被忽略,你應該有污染模式上... HTTP切換: //perldoc.perl.org/perlsec.html#Taint-mode-and-%40INC – draegtun 2008-12-10 09:56:05