我的主機(iPage)沒有安裝JSON.pm。我不想使用已安裝的模塊(XML)將數據從CGI腳本傳輸回網頁。無論如何,我可以使用JSON而無需在Perl上安裝它?在沒有shell訪問的Web主機上安裝JSON.pm
我問的原因是因爲我注意到,當我下載JSON zip文件時,我必須運行makefile json.pm命令,但我沒有訪問Unix shell或SSH終端的權限。
我的主機(iPage)沒有安裝JSON.pm。我不想使用已安裝的模塊(XML)將數據從CGI腳本傳輸回網頁。無論如何,我可以使用JSON而無需在Perl上安裝它?在沒有shell訪問的Web主機上安裝JSON.pm
我問的原因是因爲我注意到,當我下載JSON zip文件時,我必須運行makefile json.pm命令,但我沒有訪問Unix shell或SSH終端的權限。
您應該可以在沒有shell訪問權限的情況下安裝pure Perl version of the JSON module的本地副本。只需將.tar.gz
存檔下載到您自己的計算機上,將其解壓縮並將lib
子目錄下的所有內容複製到您的虛擬主機上的適當位置。
你還需要告訴perl到哪裏去找該模塊中,你需要知道文件系統路徑到複製的模塊。例如,如果你在你的虛擬主機提供商複製lib
目錄的內容/home/username/perl-lib
,那麼你會在您的代碼行:
use lib '/home/username/perl-lib';
use JSON;
根據您的虛擬主機的配置方式,您可能還可以使用$ENV{HOME}
獲取路徑到您的主目錄,這樣你可以寫:
use lib "$ENV{HOME}/perl-lib";
use JSON;
,或者你可以嘗試使用FindBin module查找包含腳本的目錄路徑,並從那裏找到lib
目錄(見FindBin文檔中的示例)。
如果你的Perl足夠新,5.14及以上,它將與JSON::PP一起,一個純粹的JSON解析器的Perl實現。令人困惑的是它不會與JSON.pm一起提供。因此請嘗試use JSON::PP
並查看它是否有效。
否則,請按照Ilmari的說明進行操作。如果切換到具有shell訪問權限的主機,則可以使用local::lib來管理CPAN模塊。