> Thanks, but I need something that destroys in reverse order, i.e. > child-first.
Hello Keary, I read up a bit in (the most brilliant) OO Perl book You could 1) call the base class' destructor yourself package subsubclass; sub DESTROY { my $self = shift; $self->subclass::DESTROY(); $self->class::DESTROY(); } 2) generalize 1) package subsubclass; sub DESTROY { my $self = shift; foreach my $parent ( @ISA ) { my $destructor = $parent->can("DESTROY"); $self->$destructor() if $destructor; } } 3) rebless, works only if you don't have multiple inheritance package subsubclass; sub DESTROY { my $self = shift; bless $self, $ISA[0]; } package subclass; .... bless $self, $ISA[0]; HTH, Axel