# This subroutine will adds a child as last child of parent: sub add_child { my( $parent, $child)= @_; my $prev_sibling= $parent->last_child; $child->{parent}= $parent; $parent->{last_child}= $child; $parent->{first_child}= $child unless( $parent->{first_child}); if( $prev_sibling) { $child->{prev_sibling}= $prev_sibling ; $prev_sibling->{next_sibling}= $child; } }