package Foo; sub new { my $class = shift; bless { @_ }, $class; # @_ goes into this ref's alter ego } sub bar { my $self = shift; $self->{bar} = shift if @_; # access $self's alter ego $self->{bar}; } package main; my $ref = Foo->new( bar => 'quux'); # empty blessed hashref returned $ref->{bar} = 'blorf'; # used as a normal hashref print $ref->bar, "\n"; # yields 'quux' print $ref->{bar}, "\n"; # yields 'blorf'