Perl中子数组的数组数组

前端之家收集整理的这篇文章主要介绍了Perl中子数组的数组数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在数组数组中获得“子阵列”的数量……

即:

原版的:

@array = (("a","b","c"),(1,2,3),("q","w","e"));

改性:

@array = (["a","c"],[1,3],["q","e"]);

我怎么去得到这个号码? (在这种情况下,它将是3.)

解决方法

要仅计算数组ref中的数组引用,可以将 grepref built-in一起使用.假设在外部数组ref中可以有其他内容和数组引用,可以这样做:

my @array = (["a","e"],4);
my $count = scalar grep { ref $_ eq 'ARRAY' } @array;
print $count;

__END__
3

它将依次查看@array的每个元素,获取具有引用类型ARRAY的元素,并将结果列表强制转换为标量上下文,给出元素数量.

因为你似乎有一个哈希引用,它包含数组引用的数组引用,所以将它改为this就可以了.我以为你可以自己做转移.

my $count = scalar grep { ref $_ eq 'ARRAY' } @{ $hashref->{element} };

猜你在找的Perl相关文章