gpt4 book ai didi

perl - 如何在 Perl 中惯用地访问单个元素哈希的第一个元素?

转载 作者:行者123 更新时间:2023-12-03 18:26:47 25 4
gpt4 key购买 nike

我有使用 DBI 的 fetchall_hashref() 获取一些数据的脚本。

通常它会返回一个哈希引用,如下所示:

{ 1 => { id => 1 } }

但是,我只对哈希中第一项的值感兴趣,它是特定列的最大值。我知道 Perl 哈希没有排序,但幸运的是,这个特定的查询总是准确地返回 1 或 0 条记录(因为这是一个 MAX() 查询)。

但是目前用来实现这一点的代码真的很难看:
$results->{(keys %{$results})[0]}->{'id'};

有没有更优雅的方式来激活它? (不借助 CPAN 模块)

澄清

我从我们内部使用的数据访问层获取哈希值。一切都通过 fetchall_hashref() 返回。我不调用 fetchall_hashref() 本身,它只是内部实现数据访问函数的方式,所以有人告诉我。我是该返回数据的消费者,它恰好是散列的形式。我正在寻找一种更简洁的方法(如果存在)来访问单个返回值查询的结果

最佳答案

您可以取消引用 id %$results 中第一个值的键:

(values %$results)[0]->{id};

通常,这不会是 well defined自从 the ordering of values returned keys or values can be different even between runs on the same machine using the same perl ,但既然你说 %$results只能包含一个或零个元素,这是一种有效的方法。

关于perl - 如何在 Perl 中惯用地访问单个元素哈希的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11359406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com