下面的Perl JSON模块有什么区别?
我遇到了JSON::PP和JSON::XS。 JSON::PP的文档说明它与JSON::XS兼容。这是什么意思?
我不确定它们之间有什么区别,更不用说它们中的哪一个了。有人可以澄清吗?
答案 0 :(得分:13)
Perl模块有时会有不同的实现。 ::PP
后缀用于Pure Perl实现(即可移植性),::XS
后缀用于基于C的实现(即速度),JSON
只是顶部 - 级别模块本身(即您实际使用的那个)。
如@Quentin所述,this site对它们有很好的描述。引用:
JSON
JSON.pm是
JSON::PP
和JSON::XS
的包装器 - 出于兼容性原因它还会做一些中等程度的疯狂事情,包括非常旧的perls的额外填充码[...]JSON :: PP
这是标准的纯perl实现,如果你不依赖于性能,那么直接使用它并没有错[...]
JSON :: XS
在C中实现快速的JSON实现。绝对精彩[...]
如您所见,只需安装顶级JSON
模块就可以为您完成。关于兼容性的部分只是意味着它们都做同样的事情,即你应该从两者获得相同的输出。
几年前我在我管理的RHEL服务器上安装了Perl JSON
模块,这是一个非常简单的过程:只需从CPAN site安装(或构建)模块即可。 ;完成。
安装应该是使用OS包管理器(如果在GNU / Linux中),使用cpan
实用程序或从源构建的简单情况。建议使用OS包管理器,因为它有助于自动更新。
要验证它是否已安装,只需从终端尝试以下命令(假设为GNU / Linux):
$ perl -e 'use JSON;'
如果它没有抱怨,那么你应该好好去。如果你遇到错误,那么你应该准备好去冒险。
答案 1 :(得分:-2)
您可以安装JSON模块,cpan install JSON
setTimeout()