我对Perl有点新意,但这就是我想做的事情:
my @array2d;
while(<FILE>){
push(@array2d[$i], $_);
}
Run Code Online (Sandbox Code Playgroud)
它不编译,因为@array2d[$i]它不是数组而是标量值.
我应该如何将@ array2d声明为数组数组?
当然,我不知道我有多少行.
假设我构建了以下多维数组:
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中构建和打印多维列表而不进行循环.