JSON :: XS"用法"呱呱叫

Nat*_*enn 5 perl json perl-module

我似乎无法JSON::XS正确使用的OO界面.以下呱呱叫错误我无法追查:

use JSON::XS;
my $array = ['foo', 'bar'];

my $coder = JSON::XS->new->utf8->pretty;
print $coder->encode_json($array);
Run Code Online (Sandbox Code Playgroud)

这与以下内容有关:Usage: JSON::XS::encode_json(scalar) at test.pl line 5.我一直在梳理代码JSON::XS,我无法在任何地方找到"用法:"警告.我的用法似乎很好地与文档中的示例相匹配.谁能告诉我哪里出错了?

Zai*_*aid 10

JSON::XS 有两个接口:功能和OO.

  • 在功能界面中,函数名称为encode_json.
  • 在OO界面中,方法很简单encode,而不是encode_json.

以下两个片段都有效:

# Functional                  | # OO
------------------------------+-----------------------------------------
                              | 
use JSON::XS;                 | use JSON::XS;
my $array = ['foo', 'bar'];   | my $array = [ 'foo', 'bar' ];
                              |
print encode_json($array);    | my $coder = JSON::XS->new->utf8->pretty;
                              | print $coder->encode($array);
                              |
# ["foo","bar"]               | # [
                              | #    "foo",
                              | #    "bar"
                              | # ]
Run Code Online (Sandbox Code Playgroud)