環境變量我有類似以下內容的CGI腳本:爲Perl CGI腳本
BEGIN {
unshift (@INC, "$ENV{'HOME'}/www/cgi-bin/SiteSpecific");
}
print "Content-type: text/html\n\n";
use SiteObject;
my $siteObjInst = SiteObject->instance();
print $siteObjInst->{HideFields};
時,從瀏覽器中的CGI腳本運行這將運行在命令提示符下罰款,但失敗。 $ ENV {'HOME'}可能沒有設置,因爲腳本找不到該模塊。
是不是CGI腳本不在shell中運行,也沒有找到環境變量?
如果以上情況屬實,是否需要使用其他方法在BEGIN塊內設置所需的變量?
感謝您的幫助。
我已經從你的答案中學到了很多東西。但是,我正試圖解決一個具體問題。 – rpat 2010-12-16 06:41:55
試圖處理特定問題。我有一個服務器上的幾個網站。我擁有除了一個特定於每個域的模塊之外的所有站點通用的代碼。通用代碼利用特定的 – rpat 2010-12-16 06:48:06
@rpat,這些變化都不會改變,以便知道您是否將正確的目錄推入「@ INC」,您需要知道服務器進程認爲「HOME」在哪裏 - 使用方法。 – Axeman 2010-12-16 06:55:00