如何只打印哈希的第一个键和元素?
我已经有一个排序的哈希,但我想只打印第一个键和各自的值谢谢,
感谢大家最后我将键和值推送到两个不同的@array和每个数组的打印元素0,它的工作原理:)
哈希有无序键.因此,哈希中没有第一个键这样的键.
但是,如果您需要首先排序的密钥(最大密钥值):
my %hash = (
'foo' => 'bar',
'qux' => 'baz',
);
my ($key) = sort { $b cmp $a } keys %hash;
print "$key => $hash{$key}"; # Outputs: qux => baz
Run Code Online (Sandbox Code Playgroud)
请记住使用<=>而不是cmp数字排序.
在perl哈希中,没有键的排序.使用sort函数以您想要的顺序获取键,或者您可以在创建哈希时将键推入数组,并且第一个键将在数组中的第零个索引处
你可以使用下面的代码,我假设哈希名称是my_hash,键和值是数字.如果你有字符串,你可以使用cmp而不是<=>.有关更多详细信息,请参阅排序文档
获取最大密钥
foreach (sort {$b <=> $a} keys %my_hash) {
print "Keys is $_\n";
print "Value is $my_hash{$_}\n";
last;
}
Run Code Online (Sandbox Code Playgroud)
获取与最大值对应的密钥
foreach (sort {$my_hash{$b} <=> $my_hash{$a}} keys %my_hash) {
print "Keys is $_\n";
print "Value is $my_hash{$_}\n";
last;
}
Run Code Online (Sandbox Code Playgroud)