我的主机(iPage)没有安装JSON.pm。我不想使用他们安装的模块(XML)来将数据从CGI脚本传输回网页。反正我是否可以使用JSON而不将它们安装在Perl上?
我问的原因是因为我注意到当我下载JSON zip时,我必须运行makefile json.pm命令,但我无法访问Unix shell或SSH终端。
答案 0 :(得分:4)
如果您的Perl足够新,5.14及更高版本,它将附带JSON::PP,这是JSON解析器的纯Perl实现。令人困惑的是它没有JSON.pm。因此,请尝试use JSON::PP
,看看它是否有效。
否则,请按照Ilmari的说明进行操作。如果切换到具有shell访问权限的主机,则可以使用local::lib来管理CPAN模块。
答案 1 :(得分:2)
您应该能够在没有shell访问权限的情况下安装pure Perl version of the JSON module的本地副本。只需将.tar.gz
存档下载到您自己的计算机上,将其解压缩并将lib
子目录下的所有内容复制到您的虚拟主机上的适当位置。
您还需要告诉Perl在哪里找到模块,您需要知道模块复制模块的文件系统路径。例如,如果您将lib
目录的内容复制到您的webhost上的/home/username/perl-lib
,那么您将在代码中包含以下行:
use lib '/home/username/perl-lib';
use JSON;
根据您的webhost的配置方式,您也可以使用$ENV{HOME}
获取主目录的路径,以便您可以写:
use lib "$ENV{HOME}/perl-lib";
use JSON;
或者您可以尝试使用FindBin module查找包含脚本的目录的路径,并从那里找到lib
目录(请参阅FindBin文档中的示例)。