package My::A; ... package My::A::_B; sub TIESCALAR { return bless \(my $foo = $_[1]), $_[0] } sub FETCH { ${ $_[0] } } sub STORE { ${ $_[0] } = $_[1] } package My::A; sub method { my ($self, @foo) = @_; tie my $bar, 'My::A::_B', $foo[0]; ... } ...