我有这样的哈希:
%hash = ('test' => 1,
'test1' => 2,
'test2' => 3,);
我想对这个散列进行排序,并从散列中删除第一个键值对。如果我这样做, (排序键 %hash)[0],我可以访问第一个键。但是,如何删除该键值对?
如果我这样做
delete (sort keys %hash)[0]
Perl 抛出一个错误,
delete argument is not a HASH or ARRAY element
最佳答案
表达式 (sort keys %hash)[0]
返回一个字符串,因此您不能只将其传递给 delete
。您必须告诉 delete
您要从哪个散列中删除。它应该是这样的:
delete $hash{(sort keys %hash)[0]};
关于perl - 从散列中删除第一个键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11662249/