package MyTemp; use strict; use warnings; my $On_close = _Knob->new(); sub delete_on_close { $On_close->add(@_) } package _Knob; use File::Path (); sub new { my $class = shift; bless([], $class); } sub add { my $self = shift; push(@{$self}, @_); } sub DESTROY { my $self = shift; print "Deleting dirs:\n"; print " $_\n" for @{$self}; File::Path::rmtree(\@{$self}); } 1;