http://qs321.pair.com?node_id=1142996

ciderpunx has asked for the wisdom of the Perl Monks concerning the following question:

I have an AoH that looks like this:
my @aoh = ( {k0 => 'v0' } , {k1 => 'v1' } , {k2 => 'v2' } , {k3 => 'v3' } );
I want to pull out the value of the element with key k2. The nicest way I can think of to do this is something like
$val = [grep {(keys $_)[0] eq 'k2'} @aoh]->[0]{'k2'};
But that's kind of disgusting. Is there a nicer way?

Update: Corion pointed out that I could just convert the AoH into a hash given the keys are unique and have a single value each. Like:

my %h = map {%$_} @aoh; ## now its just: say $h{'k2'};