这是我面临的情况...
$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/