perl - 从散列中删除第一个键值对

标签 perl

我有这样的哈希:

%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/

相关文章:

perl - 删除了自定义 HTTP header 字段

perl - Mojolicious - 无法使用催眠蟾蜍启动应用程序

perl - 如何截断标准输入行长度?

perl - Perl 中的 Tiescalar

perl - 如何从 Perl 脚本输入/应答终端提示?

xml - 从 unix 命令行进行基本 xml 解析的最简单方法

perl - 如何从 Test::Script 运行中获取标准输出?

perl - 在散列 Perl 中增加值

设置文件权限所需的 perl chmod 帮助

mysql - 如何提高从一个数据库服务器中选择 100 万多行并将它们插入到另一个数据库服务器的 Perl/DBI 脚本的性能?