如何在Perl中打印二维数组? [英] How can I print a two-dimensional array in Perl?

查看:467
本文介绍了如何在Perl中打印二维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个二维数组.当我打印/转储时,我得到以下内容

I have a 2 dimensional array. When I print/Dump this I get the following

我的2个昏暗的阵列:

push (@matrix, \@a1Comparea2);
push (@matrix, \@a3Comparea4);

a1Comparea2应该是数组的第一行 a3Comparea4应该是数组的第二行

a1Comparea2 should be first row of array a3Comparea4 should be second row of array

$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]
        ];

当我尝试使用以下代码打印时:

When I try to print this with following code:

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

如您所见,数据已重复.

As you can see the data is duplicated.

推荐答案

数组定义正确吗?
您将@用于数组,将$用于标量...
检查此文章以供快速参考.

Is you array correctly defined?
You use an @ for array and a $ for scalar...
Check this article for a quick reference.

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

That article gives this simple example.

@matrix = (
        [3, 4, 10],
        [2, 7, 12],
        [0, 3, 4],
        [6, 5, 9],
      );

这将创建一个包含四行三列的数组.要打印数组的元素,请输入:

This creates an array with four rows and three columns. To print the elements of the array, type:

for($row = 0; $row < 4; $row++) {
    for($col = 0; $col < 3; $col++) {
        print "$matrix[$row][$col] ";
   }
   print "\n";
}

这篇关于如何在Perl中打印二维数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆