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

Gam*_*ure 3 sorting perl hash reference perl-data-structures

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

$DataBase{$key} = \@value;
Run Code Online (Sandbox Code Playgroud)

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

foreach my $key (sort {$DataBase{$a} cmp $DataBase{$b} } keys %DataBase)
Run Code Online (Sandbox Code Playgroud)

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

cha*_*aos 8

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

  • - >是两个{}/[]之间的可选项.请参阅http://perlmonks.org/?node=references+quick+reference (2认同)