use strict; use warnings; my @ta = (q{a x}, q{b y}, q{c z}); my $key = q{b}; print qq{key = $key, value is @{[getValue($key)]}\n}; sub getValue { my $key = shift; return map { $_->[1] } grep { $_->[0] eq $key } map { [ split ] } @ta; }