此行
my $json = new JSON(autoconv => 0); # <-- line X
引发此错误为什么我会得到“用法:JSON :: XS :: new(klass)”错误?
Usage: JSON::XS::new(klass) at (...) line X
有什么不对?
这是一个跟进我的问题Is there a way to force quotation of numbers in JSON 1.x Perl module?
此行
my $json = new JSON(autoconv => 0); # <-- line X
引发此错误为什么我会得到“用法:JSON :: XS :: new(klass)”错误?
Usage: JSON::XS::new(klass) at (...) line X
有什么不对?
这是一个跟进我的问题Is there a way to force quotation of numbers in JSON 1.x Perl module?
JSON模块changed substantially在1.15和2.00之间的API。为JSON 1.x编写的代码不一定适用于JSON 2.x.特别是,1.x构造函数带有可选参数。 2.x构造函数不带任何参数;相反,你在构建之后使用了mutator函数。
如果你必须支持某种原因,既JSON 1.x和2.x,你需要检查是否JSON->VERSION < 2
(实际上JSON->VERSION < 1.99
如果算上2.X API的开发版本),并有两个版本你的代码,一个用于1.x API和一个用于2.x.
供参考:http://search.cpan.org/~makamaka/JSON-2.53/lib/JSON.pm可以阅读* 2.x中的新方法不再使用任何参数。你可以改为设置参数; *用下面的例子'$ json = JSON-> new-> pretty;' –
不再使用die.net,它已经过时。请参阅[metacpan.org](https://metacpan.org)获取模块文档,[perldoc.perl.org](http://perldoc.perl.org)获取核心Perl文档和[kernel.org](http: //www.kernel.org/doc/man-pages/)/[he.net](http://man.he.net)为genereal手册页。 – daxim