展平多维数组的最简单方法是什么?
最佳答案
使用List::Flatten
似乎是最简单的:
use List::Flatten;
my @foo = (1, 2, [3, 4, 5], 6, [7, 8], 9);
my @bar = flat @foo; # @bar contains 9 elements, same as (1 .. 9)
实际上,该模块导出单个简单函数
flat
,因此您也可以复制source code:sub flat(@) {
return map { ref eq 'ARRAY' ? @$_ : $_ } @_;
}
您还可以使其递归以支持多个级别的拼合:
sub flat { # no prototype for this one to avoid warnings
return map { ref eq 'ARRAY' ? flat(@$_) : $_ } @_;
}
关于perl - Perl:展平多维数组的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5166662/