sub new { my $proto = shift; my $class = ref ($proto) || $proto; my %this; return tie(%this, $class); }