你没有哈希数组。你有一个看起来像散列的数组,其中的键a
and b
各会出现四次,顺序相对随机。
print Dumper \@array;
$VAR1 = [
'a',
1,
'b',
2,
'a',
3,
'b',
4,
'a',
5,
'b',
6,
'a',
7,
'b',
8
];
之后,您将使用$x->{a}
,这是获取密钥的语法a
来自哈希引用$x
,但你只声明了一个散列%a
。这反过来又会破坏,因为你给它一个包含一个值的奇怪大小的列表。
相反,将对哈希值的引用添加到数组中。这样您将获得多级数据结构而不是平面列表。然后使x
变量标量$x
.
my %dot1 = ('a'=>1,'b'=>2);
my %dot2 = ('a'=>3,'b'=>4);
my %dot3 = ('a'=>5,'b'=>6);
my %dot4 = ('a'=>7,'b'=>8);
my @array = (\%dot1,\%dot2,\%dot3,\%dot4); # here
my $x = $array[2]; # here
my $y = $x->{'a'};
print "$y \n";
这将打印5
.
您应该阅读以下内容中的数据结构:perlref and 佩尔勒夫图特.