use Magic::Attach; sub bind { my ($ref,$shadow) = @_; attach($ref,$shadow, 'optional namespace'); } # Later sub foo { my $ref = shift; my $shadow = attach($ref); $shadow = attach($ref,{}) unless $shadow; my $count = $shadow->{Someattribute}; }