如何在不使用临时数组的情况下访问最后一个Perl哈希键?

前端之家收集整理的这篇文章主要介绍了如何在不使用临时数组的情况下访问最后一个Perl哈希键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在不创建临时数组的情况下访问哈希中键的最后一个元素?

我知道哈希是无序的.但是,有一些应用程序(如我的),我可以使用散列键上的简单排序调用来订购我的密钥.希望我已经解释了为什么我想要这个.我承认,barney / elmo示例是一个糟糕的选择,但它确实有它的应用程序.

考虑以下:

my %hash = ( barney => 'dinosaur',elmo => 'monster' );
my @array = sort keys %hash;
print $array[$#{$hash}];
#prints "elmo"

关于如何在不调用temp的情况下执行此操作的任何想法(在这种情况下为@array)?

解决方法

print( (keys %hash)[-1]);

请注意,额外的parens是防止语法与print的参数列表混淆所必需的.

你也可以使用这个邪恶的技巧强制它进入标量上下文并取消额外的parens:

print ~~(keys %hash)[-1];

猜你在找的Perl相关文章