首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Perl中,为什么`values%hash`的顺序与我用来创建%hash的列表中的顺序不同?

在Perl中,为什么`values%hash`的顺序与我用来创建%hash的列表中的顺序不同?
EN

Stack Overflow用户
提问于 2015-06-19 20:49:59
回答 2查看 53关注 0票数 1

我正在从散列中提取一个数组,并且我已经打印了该数组,但是可以看到输出的顺序不同。为什么会这样呢?

我的代码:

代码语言:javascript
运行
复制
#!/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";
EN

Stack Overflow用户

发布于 2015-06-19 21:09:09

哈希表没有顺序。如果希望值按特定顺序输出,则可以按该顺序遍历键:

代码语言:javascript
运行
复制
for my $person (('John Paul', 'Kumar', 'Lisa')) {
    my $age = $data{ $person };
    ...

或者,使用具有所需键顺序的散列片:

代码语言:javascript
运行
复制
@ages = @data{ ('John Paul', 'Kumar', 'Lisa') };

另请参见常见问题解答列表中的How can I make my hash remember the order I put elements into it?

您应该至少阅读几次FAQ列表。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30938601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档