相关疑难解决方法(0)

为什么Perl打印中的二维数组不正确?

在Perl中处理二维数组让我很头疼.无论如何,以下是我的问题:

我有一个循环将一个数组(比如@twoOneArray)推入另一个数组,比如说@twoDimArray,然后在循环的下一次迭代开始之前重置,然后再次用新的值集推入@twoDimArray.当我使用以下任一方式打印此@twoDimArray时:

print Dumper \@twoDimArray;
Run Code Online (Sandbox Code Playgroud)

它给出了输出

OUTPUT

$VAR1 = [

      [

        'BB',

        'AA',

        'AA'
       ],
       $VAR1->[0],
       $VAR1->[0],
       $VAR1->[0]
     ];
Run Code Online (Sandbox Code Playgroud)

或使用循环

for (my $i=0; $i<4; $i++){
    for (my $j=0; $j<4; $j++){
         print "$twoDimArray[$i][$j] \n";
    }
}
Run Code Online (Sandbox Code Playgroud)

数据重复.

OUTPUT

行= 0 BB AA AA

行= 1 BB AA AA

行= 2 BB AA AA

行= 3 BB AA AA

等等....

我无法弄清楚为什么两种输出方式都出错了.如果我每次都打印@twoDimArray(在移动到循环的下一次迭代之前,即在使用push函数之后)插入@twoOneArray,那么值似乎很好并且不重复自己,但是在单个go中打印它似乎给出了上述错误.这里也有类似的问题,但我不确定这对我是否有意义.有什么建议?

构建2D数组的代码:

for ($k = 1; $k <= $counter; $k++){
        @twoOneArray = (); #reset it when loop starts …
Run Code Online (Sandbox Code Playgroud)

arrays perl data-structures

0
推荐指数
1
解决办法
1747
查看次数

标签 统计

arrays ×1

data-structures ×1

perl ×1