use strict; use warnings; BEGIN { package Testing; use Tie::Scalar qw( ); BEGIN { our @ISA = qw(Tie::StdScalar); } sub STORE { my ($self, $val) = @_; print("STORE ", defined($val) ? "[$val]" : 'undef', "\n"); shift->SUPER::STORE(@_) } } { our $s; tie $s, 'Testing'; { print("pre\n"); local $s; print("post\n"); } print("\n"); { print("pre\n"); local $s = 'a'; print("post\n"); } }