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} };

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...