use strict; use warnings; my %h; push @{$h{CUST}}, [ { NAME => 'Mr.y', ADD => 'Hell', } ]; push @{$h{CUST}}, [ { NAME => 'Mr.z', ADD => 'Hell', } ]; push @{$h{ADMIN}}, [ { NAME => 'Mr.x', ADD => 'Hell', } ]; my $name; my $val = $h{CUST}; my $i = 0; for($i, $i<@$val, $i++) { my $hash = $val->[$i]; foreach(@$hash) { print $_->{NAME}; } }