package SomeClass; { # All I need: my $data; sub new { my ($class, $name) = @_; my $scalref; my $new = bless \$scalref, $class; my $addr = norm($new); $data->{$addr} = { name => $name, obj => $new, }; $new } sub get { my $self = shift; my $arg = shift; $self = norm($self); $data->{$self}{$arg}; } sub set { my $self = shift; my ($key, $val) = @_; $self = norm($self); $data->{$self}{$key} = $val; } sub norm { my $address = ($_[0] =~ /\(?x(\w+)/)[0] } }