Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 打印二维数组_Arrays_Perl - Fatal编程技术网

Arrays 打印二维数组

Arrays 打印二维数组,arrays,perl,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) 这是什么意思?为什

我试着搜索这个,但我不确定这个条件叫什么

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)

这是什么意思?为什么会发生这种情况,以及
0x1fedcb8
0x200fe80
指的是什么?我知道这很可能是一个常见问题,但请耐心听我说。

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

您可以使用

for my $row (@tgs) {
   print(join(' ', @$row), "\n");
}

文档:,

您有两个数组。数组中的两个项都是数组。您希望打印什么?@mpapec,最佳答案不在dup中,也不适合发布(因为另一个问题的主题是关于打印2d数组,而问题本身则大不相同)。我要重新打开它。我宁愿有其他问题标记为重复的这一个,因为它是明确和准确的。如果这样的问题已经存在,请随时再次标记为dup。将代码中的
$\uu
更改为
“@{$\u}\ n”
也会将其打印出来。此引用在代码中的何处发生?在我看来,它只是声明了一个数组变量,然后在@tgs中遍历每个元素并打印它。其他两个数组在哪里?@sbnation
[]
之间的文本(这些括号中包含匿名数组构造函数)
['article series','sed&awk','problembleshooting','vim','bash']
是一个数组,每个完整的
[]
本身就是
@tgs
中的数组元素。有关更多信息,请参阅。@G.Cito-yet
print@$\u,“\n”foreach(@tgs)打印我所期望的内容(所有元素,所做的只是添加一个换行符并将@tgs括在括号中。@sbnation,Re“在代码中的什么地方发生了这种引用?”
[…]
基本上是
do{my@anon=(…)\@anon}的缩写
。它创建一个数组和对它的引用,并返回引用。@sbnation,是的,您可以使用
@$row
而不是
连接(''.@$row)
,但它不可读。