在Perl中,如何从哈希中获取任意值?

Dan*_*umb 4 perl hash

考虑一个填充的哈希:

%hash = ( ... );
Run Code Online (Sandbox Code Playgroud)

我想从哈希中检索一个值; 任何价值都可以.

我想避免

$arbitrary_value = (values %hash)[0];
Run Code Online (Sandbox Code Playgroud)

因为我真的不想创建一个键数组,只是为了获得第一个键.

有没有办法在不生成值列表的情况下执行此操作?

注意:它不需要是随机的.任何价值都可以.

有什么建议?

编辑:假设我不知道任何键.

Sin*_*nür 16

用途each:

#!/usr/bin/env perl

use strict; use warnings;

my %h = qw(a b c d e f);

my (undef, $value) = each %h;
keys %h; # reset iterator;

print "$value\n";
Run Code Online (Sandbox Code Playgroud)

正如在注释中指出的那样,特别是在void上下文中调用keys()会重置迭代器而不会产生其他开销.至少自2003年以来,这种行为一直存在,当时将信息添加到文档中以获取.