繁体   English   中英

如何对值为数组引用的Perl哈希进行排序?

[英]How can I sort Perl hashes whose values are array references?

嘿,我只是想知道是否有一个很酷的“单线程”,可以排序我的哈希控件数组引用。 所以我的哈希中有一堆键/值类似于:

$DataBase{$key} = \@value;

但是我想通过array[0]元素对哈希进行排序。 然后循环通过'em。 我有这个开头:

foreach my $key (sort {$DataBase{$a} cmp $DataBase{$b} } keys %DataBase)

但这显然只是通过数组的指针值对我的哈希值进行排序。 它并不一定是“一行”,但我希望找到一个不涉及重构哈希的解决方案。

foreach my $key (sort {$DataBase{$a}->[0] cmp $DataBase{$b}->[0] } keys %DataBase)

对于记录(您可能来自C背景),Perl没有指针,但引用

Perl [...]允许您创建匿名数据结构,并支持称为“引用”的基本数据类型,松散地等效于C指针。 正如C指针可以指向数据和过程一样,Perl的引用可以引用传统的数据类型(标量,数组和散列)以及其他实体,例如子例程,类型字符串和文件句柄。 与C不同,它们不会让你偷看和戳戳原始内存位置。

类似,但不一样。

C。

我想你问的是同样的基本问题, 如何在Perl中按密钥对哈希哈希进行排序? 我的答案在Perl FAQ中,向您展示了如何按照您喜欢的方式对哈希进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM