【发布时间】:2014-02-03 08:06:36
【问题描述】:
我有一个这样的哈希:
%hash = ('test' => 1,
'test1' => 2,
'test2' => 3,);
我想对这个散列进行排序并从散列中删除第一个键值对。如果我这样做, (排序键 %hash)[0],我可以访问第一个键。但是,如何删除该键值对?
如果我这样做
delete (sort keys %hash)[0]
Perl 抛出错误,
删除参数不是 HASH 或 ARRAY 元素
【问题讨论】:
-
提供的两个答案 do 以某种稳定的方式排序,以便您可以将元素分类为“第一”,但它们不按字母顺序排序。它们按代码点顺序排序(我们过去称其为 ASCIIbetical 顺序,但在 Unicode 世界中不再适用)。要时刻铭记在心。 'Z' 排在 'a' 之前,所以 'Zoo' 将排在 'boo' 之前。
标签: perl