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; #### use 5.010; our $foo = 42; sub bar { say "start bar: ", $foo; local $foo = 1; say "end bar: ", $foo; } say "before bar: ", $foo; bar(); say "after bar: ", $foo;