我的主机(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模块。