从Perl中的多维数组中收集子数组

Ame*_*ina 1 perl slice multidimensional-array

假设我构建了以下多维数组:

my @array;  # don't need the empty list
my @other_array = (0 ... 10);

foreach my $i ( 0 .. 10 ) {
$array[$i] = [ @other_array[1..$#other_array] ];
}
Run Code Online (Sandbox Code Playgroud)

我想将这个多维数组的"列"收集到一个单独的数组中,

例如,如果我想收集第一列中的项目,我想要类似的东西

my @other_array = ();
@other_array = $array[:][1]; # This does NOT work in Perl
Run Code Online (Sandbox Code Playgroud)

有没有办法在Perl中执行此操作而不循环?

最终我想要做的是获取max我的多维数组的每列的数组.

PS:这个问题的灵感来自于另一个问题:在Perl中构建和打印多维列表而不进行循环.

zos*_*tay 5

我想你想要:

my @other_array = map { $_->[1] } @array;
Run Code Online (Sandbox Code Playgroud)

另一种语言可能具有此操作的特殊语法,但它仍然会在幕后执行循环.