{
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