这是我面临的情况...

$perl_scalar = decode_json( encode ('utf8',$line));


encode_json返回一个引用。我确定这是一个数组。如何找到$ perl_scalar的大小?根据Perl文档,使用@name引用数组。有解决方法吗?

该参考由一系列哈希组成。我想获取哈希数。

如果我执行length($ perl_scalar),则会得到一些与数组中元素数量不匹配的数字。

最佳答案

那将是:

scalar(@{$perl_scalar});


您可以从perlreftut获取更多信息。

您可以将引用的数组复制到普通数组,如下所示:

my @array = @{$perl_scalar};


但是在此之前,您应该使用$perl_scalar检查ref是否真的在引用数组:

if (ref($perl_scalar) eq "ARRAY") {
  my @array = @{$perl_scalar};
  # ...
}


更新资料

length方法不能用于计算数组的长度,它用于获取字符串的长度。

关于perl - 如何确定数组引用中的元素数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5885794/

10-11 22:28
查看更多