package Foo::Bar; use Scalar::Util qw(refaddr); my %var; sub get_var { my $self = shift; return $var{ refaddr( $self ) }; } sub set_var { my $self = shift; my $value = shift; $var{ refaddr( $self ) } = $value; return 1; } # Not completely sure that this is correct. sub new { my $class = shift; return bless \my($anon_scalar), $class; }