[英]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.