在循环Perl中打印二维数组
以下是我将数据附加到数组中的方式:在循环Perl中打印二维数组,perl,perl-data-structures,Perl,Perl Data Structures,以下是我将数据附加到数组中的方式: push @cordinate_and_link, ($cordinate , $link); 因此,如果我打印@cordinate\u和\u link,我会得到如下结果: 172193 1 19601 2 14835 3 4758 4 ... 我希望有一个循环,它只能循环第一列[0]并生成所有值 这就是我一直在尝试的: foreach my $cordinate ( $cordinate_and_link[0]) { print
push @cordinate_and_link, ($cordinate , $link);
因此,如果我打印@cordinate\u和\u link,我会得到如下结果:
172193 1 19601 2 14835 3 4758 4 ...
我希望有一个循环,它只能循环第一列[0]并生成所有值
这就是我一直在尝试的:
foreach my $cordinate ( $cordinate_and_link[0]) {
print "$cordinate";
}
但此语句仅打印行“4758”中的最后一个值,打印次数与循环运行次数相同。您当前正在将两个值添加到相邻的
@cordinate\u和\u link
,它们不在单独的列中。为了明确它们在两个不同的列中,我们推送一个匿名arrayref[…]
:
push @cordinate_and_link, [$cordinate , $link];
paren()
不在Perl中创建数组或元组
稍后,我们可以循环所有行,只打印每行的第一列:
foreach my $cordinate (@cordinate_and_link) {
print $cordinate->[0];
}
您当前正在将两个值添加到相邻的
@cordinate\u和\u link
,它们不在单独的列中。为了明确它们在两个不同的列中,我们推送一个匿名arrayref[…]
:
push @cordinate_and_link, [$cordinate , $link];
paren()
不在Perl中创建数组或元组
稍后,我们可以循环所有行,只打印每行的第一列:
foreach my $cordinate (@cordinate_and_link) {
print $cordinate->[0];
}
文章中的代码将列表展平为一维数组:
push @coordinate_and_link, ($coordinate , $link);
这将需要行主顺序表达式才能在“列0”处获取
我想你想要这个:
push @coordinate_and_link, [$coordinate, $link];
在这种情况下,您可以像这样对其进行迭代:
for my $row (@coordinate_and_link) {
print "$row->[0]\n";
}
您可以通过多种方式迭代该结构,这只是其中之一
编辑:修正打字错误。您帖子中的代码将您的列表展平为一维数组:
push @coordinate_and_link, ($coordinate , $link);
这将需要行主顺序表达式才能在“列0”处获取
我想你想要这个:
push @coordinate_and_link, [$coordinate, $link];
在这种情况下,您可以像这样对其进行迭代:
for my $row (@coordinate_and_link) {
print "$row->[0]\n";
}
您可以通过多种方式迭代该结构,这只是其中之一
编辑:修正输入错误。您希望输出什么数字?@mpapec第一个数字,在我的例子中是17219319601148354758。这是科迪酸盐。不要打印链接。你想要输出什么数字?@mpapec第一个,在我的例子中是17219319601148354758。这是科迪酸盐。不要打印链接。我以前尝试过,但没有效果:“全局符号“@cordinate”要求在文件名“@mpapec”处有明确的包名。在访问
$cordinate
中的列时,您忘记了->
。我还加了一些explanations@amontnx,我打字没有你快。:)@谢谢。除了省略的->之外,您的代码正常工作。我给你们投票,马克·阿蒙作为答案,因为他给出了一些解释。你就是答案。感谢添加的建议,amonI以前尝试过,但没有成功:“全局符号“@cordinate”要求在文件名“@mpapec”处有明确的包名。在访问$cordinate
中的列时,您忘记了->
。我还加了一些explanations@amontnx,我打字没有你快。:)@谢谢。除了省略的->之外,您的代码正常工作。我给你们投票,马克·阿蒙作为答案,因为他给出了一些解释。你就是答案。阿蒙,谢谢你的建议