my %childtables; foreach my $child ( @{ $ele->child() } ) { if( ref( $childtables{ $ele->doc_type() } ) ne "ARRAY" ) { $childtables{ $ele->doc_type( ) }=[ $child ]; } else { push( @{ $childtables{ $ele->doc_type() } }, $child ); } }