1

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

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

4

2 回答 2

4

如果您的 Perl 足够新,5.14 及更高版本,它将附带JSON::PP,这是 JSON 解析器的纯 Perl 实现。令人困惑的是,它没有随 JSON.pm 一起提供。所以试着use JSON::PP看看它是否有效。

否则,请遵循 Ilmari 的指示。如果您切换到具有 shell 访问权限的主机,则可以使用local::lib来管理 CPAN 模块。

于 2012-12-28T01:58:16.270 回答
2

您应该能够安装JSON 模块的纯 Perl 版本的本地副本,而无需访问 shell。只需将.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 模块查找包含您的脚本的目录的路径,并从那里找到该lib目录(请参阅 FindBin 文档中的示例)。

于 2012-12-28T01:56:11.767 回答