sub foo:lvalue { ... } (undef,foo)=bar(); bar(foo); bar(\foo); foo ||= bar; bar(foo()++);