获取Perl哈希中的数组长度

时间:2010-05-20 16:30:49

标签: perl

我有以下内容:

$data{host} -> [$i] -> {someotherstuff}

如何获得[$ i]所在的数组长度?

3 个答案:

答案 0 :(得分:14)

$length = scalar( @{ $data{host} } );

答案 1 :(得分:1)

根据msw's comment添加了答案:

use autobox::Core;
# ...
$data{host}->length;

这与Cfreak的答案相同,除了语法错综复杂之外,代价是使用模块。

我的论点是关于Perl的大多数合理投诉可以简单地用回答»它不需要这样!«并且对CPAN的简短概要感到满意。

答案 2 :(得分:0)

如果您想要最后一个索引,可以使用:$#@ {$ data {host}}

显然,数组的长度是最后一个索引+ 1.当难以实现标量上下文或特别需要length-1时,请使用此表示法。例如:

0 .. $#{$ data {host}}#返回数组所有索引的列表

有时很有用。