打印二维数组

时间:2014-11-20 18:39:44

标签: arrays perl

我试过这个,但我不确定这个条件是什么。

my @tgs = (
    ['article series', 'sed & awk', 'troubleshooting', 'vim', 'bash'],
    ['ebooks', 'linux 101', 'vim 101', 'nagios core', 'bash 101' ]
);

print $_ foreach @tgs;

结果:

ARRAY(0x1fedcb8)ARRAY(0x200fe80)

这是什么意思?为什么会发生这种情况,0x1fedcb80x200fe80指的是什么?我知道这很可能是一个常见问题,但请耐心等待。

1 个答案:

答案 0 :(得分:1)

您有一个包含对其他数组的两个引用的数组。您正在获取垃圾,因为您正在打印引用而不是这些引用引用的数组的内容。 (十六进制数是引用数组所在的内存地址。)

您可以使用

打印出这个“二维”数组
for my $row (@tgs) {
   print(join(' ', @$row), "\n");
}

文档:perldscperllol