我正在从散列中提取一个数组,并且我已经打印了该数组,但是可以看到输出的顺序不同。为什么会这样呢?
我的代码:
#!/usr/bin/perl
%data = ('John Paul' => 45, 'Lisa' => 30, 'Kumar' => 40);
@ages = values %data;
print "$ages[0]\n";
print "$ages[1]\n";
print "$ages[2]\n";发布于 2015-06-19 21:09:09
哈希表没有顺序。如果希望值按特定顺序输出,则可以按该顺序遍历键:
for my $person (('John Paul', 'Kumar', 'Lisa')) {
my $age = $data{ $person };
...或者,使用具有所需键顺序的散列片:
@ages = @data{ ('John Paul', 'Kumar', 'Lisa') };另请参见常见问题解答列表中的How can I make my hash remember the order I put elements into it?。
您应该至少阅读几次FAQ列表。
https://stackoverflow.com/questions/30938601
复制相似问题