我已经看到了关于制作二维数组的其他问题,但其中大多数似乎都在处理数组变量中的大量数组变量。我跟着他们有困难。我想要做的是:
my @array = [ [50, 1], [52, 2], [45, 3], [60, 4] ];
并且能够引用它并将其打印为二维数组(我使用此脚本生成一个html文件。)但每当我尝试引用@array的长度时,它就会出现1.打印此数组或引用一对坐标或单个数字的正确语法是什么?
例如,我如何引用子数组[50,1]与引用" 1"元件?
答案 0 :(得分:3)
最外面的括号[]应该是圆括号()。方括号[]为数组引用提供了一个数组引用,因为嵌套元素必须是perl中的引用。
所以:
my @array = ([50, 1], [52, 2], [45, 3], [60, 4]);
print length(@array); # Should give 4.
# Iterate & print
foreach my $sub_array (@array) {
print "a: $sub_array->[0], b: $sub_array->[1]\n";
}
答案 1 :(得分:1)
你可以这样做:
#!/usr/bin/perl
use strict;
use warnings;
my @array = ( [50, 1], [52, 2], [45, 3], [60, 4] );
print join(" ", @array) . "\n"; #prints all array references (not very useful)
print join(" ", @{$array[1]}) . "\n"; # prints 52 2
print ${$array[0]}[1] . "\n"; # prints 1
我在更详细的here
中对此进行了解释以下是如何迭代它的示例:
for my $arr_ref (@array) {
for my $element ( @{$arr_ref} ) {
print $element . ", ";
}
print "\n";
}
输出:
50, 1,
52, 2,
45, 3,
60, 4,