2012-12-28 37 views
1

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

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

回答

2

您应该可以在没有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文档中的示例)。

4

如果你的Perl足够新,5.14及以上,它将与JSON::PP一起,一个纯粹的JSON解析器的Perl实现。令人困惑的是它不会与JSON.pm一起提供。因此请尝试use JSON::PP并查看它是否有效。

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

相关问题