perl - 如何在 Perl 中打印二维数组?

标签 perl multidimensional-array

我有一个二维数组。当我打印/转储这个时,我得到以下信息
我的二维数组:

push (@matrix, \@a1Comparea2);
push (@matrix, \@a3Comparea4);
a1Comparea2 应该是数组的第一行。 a3Comparea4 应该是数组的第二行。
$VAR1 = [
          [
            '1 6',
            '2 7',
            '3 8',
            '4 9',
            '5 10'
          ],
          $VAR1->[0],
          $VAR1->[0],
          $VAR1->[0],
          $VAR1->[0],
          [
            '7 12',
            '8 13',
            '9 14',
            '10 15',
            '11 16'
          ],
          $VAR1->[5],
          $VAR1->[5],
          $VAR1->[5],
          $VAR1->[5]
        ];
当我尝试使用以下代码打印时:
for (my $j= 0; $j < $rows; $j++)
{
    for (my $k= 0; $k < @a1; $k++)
    {
        print "Row:$j Col:$k = $matrix[$j][$k]\n";
    }
}
我得到以下输出:
Row:0 Col:0 = 1 6
Row:0 Col:1 = 2 7
Row:0 Col:2 = 3 8
Row:0 Col:3 = 4 9
Row:0 Col:4 = 5 10
Row:1 Col:0 = 1 6
Row:1 Col:1 = 2 7
Row:1 Col:2 = 3 8
Row:1 Col:3 = 4 9
Row:1 Col:4 = 5 10
如您所见,数据是重复的。

最佳答案

您是否正确定义了数组?
您应该使用 @对于数组和 $对于标量...
检查这个 article for a quick reference .

那篇文章给出了这个简单的例子。

@matrix = (
        [3, 4, 10],
        [2, 7, 12],
        [0, 3, 4],
        [6, 5, 9],
      );
这将创建一个四行三列的数组。要打印数组的元素,请键入:
for($row = 0; $row < 4; $row++) {
    for($col = 0; $col < 3; $col++) {
        print "$matrix[$row][$col] ";
    }
    print "\n";
}

关于perl - 如何在 Perl 中打印二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1112988/

相关文章:

perl - WWW::Mechanize::Chrome 如何关闭选项卡

C: "invalid use of undefined type ‘struct X’ & 取消引用指向不完整类型的指针“错误

java - Hashmap put方法不会用char[][]类型编译?

C++ 2D 数组分配内存以避免段错误

javascript - 如何使用javascript将数组插入到另一个数组中

perl - 本地化 $0 后显示原始参数

perl - 为什么这个 Perl 变量保持它的值

perl - 在perl中计算汉明距离

arrays - 在 Perl 中对 @_ 数组使用移位函数的问题

Javascript 三维数组与对象字面量