sub new { my $class = shift; local $value = shift; return bless { datum => $value, glob => *value }, $class } #### sub value { my $self = shift; # return $self{glob} # will never work return $self->{glob} # might work } #### my $d = datum->new(42); *d = $d->value(); #### my $datum = \ $obj->{datum}; # and then $$datum = ...; #### $datum->{foo}=...; push @$datum,...;