use Data::Dump; my $foo = 7; sub bar :lvalue { $foo } sub baz :lvalue { bar } dd $foo, bar(), baz(); baz = 9; for (baz) { dd $foo; $_ = 4; dd $foo; }