我有使用 DBI 的 fetchall_hashref() 获取一些数据的脚本。
通常它会返回一个哈希引用,如下所示:
{ 1 => { id => 1 } }
但是,我只对哈希中第一项的值感兴趣,它是特定列的最大值。我知道 Perl 哈希没有排序,但幸运的是,这个特定的查询总是准确地返回 1 或 0 条记录(因为这是一个 MAX() 查询)。
但是目前用来实现这一点的代码真的很难看:
$results->{(keys %{$results})[0]}->{'id'};
有没有更优雅的方式来激活它?(不借助 CPAN 模块)
澄清
我从我们内部使用的数据访问层获取哈希值。一切都通过 fetchall_hashref() 返回。我不调用 fetchall_hashref() 本身,它只是内部实现数据访问函数的方式,所以有人告诉我。我是该返回数据的消费者,它恰好是散列的形式。我正在寻找一种更简洁的方法(如果存在)来访问单个返回值查询的结果