use strict; use warnings; my ($mary, $lamb) = (bless({}, 'Girl'), bless({}, 'Lamb')); push(@{$mary->{possessions}}, $lamb); $lamb->{attributes} = { size => 'little', fleece => 'white as snow' }; $lamb->{location} = \$mary->{location}; # And to test... $mary->{location} = 'town'; use Data::Dumper; print Dumper $mary, $lamb;