Чтобы получить именно тот результат, который вы хотите, вы можете использовать map :
my @result = [ map $_->{name}, @$people ];
Но почему вы хотите иметь анонимный массив в массиве?
my @result = map $_->{name}, @$people;
создаст @result = qw( Hanna John )
.