这是我面临的情况......
$perl_scalar = decode_json( encode ('utf8',$line));
Run Code Online (Sandbox Code Playgroud)
decode_json返回一个引用.我相信这是一个数组.我如何找到$ perl_scalar的大小?根据Perl文档,使用@name引用数组.有解决方法吗?
该引用由一系列哈希组成.我想得到哈希的数量.
如果我做长度($ perl_scalar),我会得到一些与数组中元素数量不匹配的数字.
KAR*_*ván 29
那将是:
scalar(@{$perl_scalar});
Run Code Online (Sandbox Code Playgroud)
您可以从perlreftut获取更多信息.
您可以将引用的数组复制到正常数组,如下所示:
my @array = @{$perl_scalar};
Run Code Online (Sandbox Code Playgroud)
但在此之前,你应该检查它是否$perl_scalar
真的引用了一个数组ref
:
if (ref($perl_scalar) eq "ARRAY") {
my @array = @{$perl_scalar};
# ...
}
Run Code Online (Sandbox Code Playgroud)
更新
该length
方法不能用于计算数组的长度,而是用于获取字符串的长度.
您还可以使用数组的最后一个索引来计算数组中的元素数量。
my $length = $#{$perl_scalar} + 1;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12730 次 |
最近记录: |