这些JSON Perl模块之间有什么区别?

时间:2016-08-05 06:12:08

标签: json perl

下面的Perl JSON模块有什么区别?

我遇到了JSON::PPJSON::XSJSON::PP的文档说明它与JSON::XS兼容。这是什么意思?

我不确定它们之间有什么区别,更不用说它们中的哪一个了。有人可以澄清吗?

2 个答案:

答案 0 :(得分:13)

Perl模块有时会有不同的实现。 ::PP后缀用于Pure Perl实现(即可移植性),::XS后缀用于基于C的实现(即速度),JSON只是顶部 - 级别模块本身(即您实际使用的那个)。

如@Quentin所述,this site对它们有很好的描述。引用:

  

JSON

     

JSON.pm是JSON::PPJSON::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()
相关问题