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