-# remove all sub nodes from this parent
-sub del_nodes
-{
- my $self = shift;
- my @nodes;
-
- for (@{$self->{nodes}}) {
- next if $self->{call} eq $_;
- push @nodes, $self->del_node($_);
- }
- return @nodes;
-}
-
-# delete a node from this node (ie I am a parent)
-sub del_node
-{
- my $self = shift;
- my $ncall = shift;
- my @out;
- $self->_delnode($ncall);
- if (my $ref = get($ncall)) {
- foreach my $rcall (@{$ref->{nodes}}) {
- next if $rcall eq $ncall || $rcall eq $self->{call};
- push @out, $ref->del_node($rcall);
- }
- push @out, $ref->del($self);
- }
- return @out;
-}
-