sub ors :lvalue { $_ && return $_ for @_ ; return $_[-1]; } # define analogous &defs ors($x,$y,$z) = 42; #### sub lv(&) :lvalue { ${ \( $_[0]->() ) } } lv{ $a // $b } = 666;