{ my $foo = 1; sub level : lvalue {$foo} } print level(); { local level() = 2; print level(); } print level(); __END__ #### Can't localize lexical variable $foo at __FILE__ line __LINE__. #### { local *foo = sub : lvalue { print "wuff: $foo\n"; $foo }; } #### $\ = "\n"; $foo = 3; sub foo :lvalue { $foo } { local *foo = sub :lvalue { $foo *= 1.25; $foo; }; { local $foo; print '1: ',(foo() = 4); print '2: ',(foo() *= 4); foo() = 2; local *foo = sub :lvalue { local $foo = $foo * 1.25; $foo; }; print '3: ',(foo() *= 4); } local $foo = 4; print '4: ',(foo() /= 2); print '5: ',foo(); } print '6: ',foo(); __END__ 1: 4 2: 20 3: 10 4: 2.5 5: 3.125 6: 3 #### local foo() = 2; #### Useless localizing of a subroutine return value