【问题标题】:Installing JSON.pm on a web host without shell access在没有 shell 访问权限的 Web 主机上安装 JSON.pm
【发布时间】:2012-12-13 08:26:27
【问题描述】:

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

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

【问题讨论】:

    标签: json perl cpan perl-module


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您应该能够安装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 文档中的示例)。

      【讨论】:

        猜你喜欢
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        相关资源
        最近更新 更多