【发布时间】:2014-03-19 05:50:27
【问题描述】:
我有一个这样的哈希
my %hash = (
'2011-49' => 'data1',
'2011-100' => 'data2',
'2009-22' => 'data3',
'2011-11' => 'data4',
'4323' => 'data5',
'2354' => 'data6',
'423532-2' => 'data7'
);
如何对哈希键进行排序,以便它根据第一个数字然后显示以下输出的第二个数字进行排序。
my %hash = (
'2009-22' => 'data3',
'2011-11' => 'data4',
'2011-49' => 'data1',
'2011-100' => 'data2',
'2354' => 'data6',
'4323' => 'data5',
'423532-2' => 'data7'
);
我将所有键都推送到数组中并使用
Sort::Naturally qw(nsort ncmp) 但是不行。
【问题讨论】:
-
您不能对哈希进行排序,哈希不存储其键的顺序。不过,您可以对键进行排序并将它们放入一个数组中。
-
@TLP 我做了同样的事情,将数组放入 n 排序
-
那么你的问题不是如何对哈希进行排序,而是如何对键进行排序。
-
是的,我在我的问题中指出了这一点。
-
是的,但是您显示了存储在哈希中的排序键。这是不可能的。所以我只是想澄清一下。