我有一个哈希.
'20111124' => undef,
'20111125' => undef,
'20111129' => undef,
'20111130' => '126002',
'20111201' => '126002',
'20111202' => '126002',
'20111205' => '126002',
'20111206' => '126002',
'20111207' => '126002'
Run Code Online (Sandbox Code Playgroud)
我想得到第一个有价值的键.
我已经尝试迭代哈希,但由于哈希有时很大,获得第一个具有定义值的键的最快方法是什么?
哈希中没有"第一个键"这样的东西,因为哈希没有被排序.如果我正确理解您的问题,您需要按字典顺序排列的键.最好的解决方案可能是首先过滤掉具有undef值的键,然后对剩余的键进行排序.这是一项代价高昂的操作,但我认为没有简单的方法.假设您的哈希名为%h,此代码可以解决这个问题:
my @sorted_keys = sort(grep(defined($h{$_}), keys(%h)))
my $first_key = $sorted_keys[0]
Run Code Online (Sandbox Code Playgroud)