use overload '%{}' => sub { my $self = shift; tie my(%h), $self; \%h }; sub TIEHASH { shift }