my @ms = ( { a => 'x1', b => 'y', c => 'z1' }, { a => 'x2', b => 'y1', c => 'z2' }, { a => 'x3', b => 'y', c => 'z3' }, { a => 'x4', b => 'y2', c => 'z4' }, ); my @l = map $_->{a}, grep $_->{b} eq 'y', @ms;