use Tie::HashTree qw(hash_to_tree); #my $tree = tie my %x, 'Tie::HashTree'; Tie::HashTree->new('tree'); sub new { my $pkg = shift; my($ppackage) = (caller)[0]; ${$ppackage.'::'.$_[0]} = tie %{$ppackage.'::'.$_[0]}, $pkg; } sub TIEHASH { my ($class, $self) = @_; $self->{level} = ""; $self->{name} = "top"; $self->{top} = {}; bless ($self, $class); }