@attrs = map { @{ $_->{attributes}{attribute} } } values %{ $data->{dataschemas}{dataschema} }; #### foreach my $dataschema ( values %{ $data->{dataschemas}{dataschema} } ) { while( my ($name, $value) = each %{ $dataschema->{attributes}{attribute} } ) { # do something with the name and value } }