{ package Voodoo; sub FETCH { my $self = shift; return $self->{'a'}; } sub STORE { my $self = shift; my $val = shift; $self->{'a'} += $val; } sub TIESCALAR { my $self = {}; my $class = shift; bless $self, $class; return $self; } } my $a; tie $a, 'Voodoo'; $a = 4; $a = 2; $a = 9; say $a;