如何通过其中一个值从哈希数组中获取哈希引用?

Nik*_*ain 3 arrays perl hash reference perl-data-structures

我有一个哈希数组,每个哈希包含相同的键,但值是唯一的.在特定值的基础上,我需要存储散列引用.

请参阅以下示例以正确理解它:

my @aoaoh = (
            { a => 1, b => 2 },
            { a => 3, b => 4 },
            { a => 101, b => 102 },
            { a => 103, b => 104 },
    );  
Run Code Online (Sandbox Code Playgroud)

现在我将检查哈希键是否a包含值101.如果是,那么我需要存储整个散列引用.

怎么做?

Eug*_*ash 14

my $key = "a";
my ($ref) = grep { $_->{$key} == 101 } @aoaoh;
Run Code Online (Sandbox Code Playgroud)

或使用List::Util's first():

use List::Util 'first';
my $ref = first { $_->{$key} == 101 } @aoaoh;
Run Code Online (Sandbox Code Playgroud)