我有以下代码:
#!/opt/local/bin/perl
use strict;
use warnings;
use JSON::XS qw/decode_json/;
my $api_response = '{"user":{"id":14897,"data":["foo", "bar", "baz"]}}';
my $user = decode_json($api_response);
$user = $user->{user};
my @data = $user->{data};
print($user->{id}, "\n"); # output: 14897
print("@data", "\n"); # output: ARRAY(0x14200d9b8)
print($data[0], "\n"); # output: ARRAY(0x14200d9b8) why???
print($data[0][0], "\n"); # output: foo
这对我来说很好,但我花了一段时间才弄清楚,我必须深入到$data
的2个级别,在我看来,这应该代表一个简单的字符串array.这是预期行为,还是我的代码有问题?