my @all_names = map { {name => $_->{name}} } @{ $data }[1 .. $#$data]; #### use warnings; use strict; use Data::Dumper; my $data = [ { val => "action", name => "Accounts", id => "None", }, { name => "PA1", id => "AUTOB" }, { name => "PB3", id => "AUTOP" }, { name => "BOX", id => "BOP" }, { name => "DW0", id => "DFIRE" }, { name => "QW3", id => "HOME" }, { name => "CM7", id => "CUMBR" }, { name => "BR1", id => "PUMBR" }, { name => "TY6", id => "ECUST" }, ] ; #my @all_names = map { $_->{name} } @{ $data }[1 .. $#$data]; #my @hash_names = map{ {name=>$_} } $data; my @all_names = map { {name => $_->{name}} } @{ $data }[1 .. $#$data]; print Dumper(\@all_names); #print Dumper \@hash_names; __END__