在没有shell访问权限的Web主机上安装JSON.pm

时间:2012-12-28 00:59:29

标签: json perl cpan perl-module

我的主机(iPage)没有安装JSON.pm。我不想使用他们安装的模块(XML)来将数据从CGI脚本传输回网页。反正我是否可以使用JSON而不将它们安装在Perl上?

我问的原因是因为我注意到当我下载JSON zip时,我必须运行makefile json.pm命令,但我无法访问Unix shell或SSH终端。

2 个答案:

答案 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文档中的示例)。