use 5.010; use Scope::Upper qw(localize UP); our $foo = 42; sub foo { localize '$foo', 1, UP; } sub bar { say "start bar: ", $foo; foo(); say "end bar: ", $foo; } say "before bar: ", $foo; bar(); say "after bar: ", $foo;