簡體   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