On Fri, Aug 18, 2000 at 10:09:22AM -0500, Jarkko Hietaniemi wrote:
> > The clue is "If a sub wants to return an lvalue, it must B<be> an
> > lvalue". Therefore I propose a new keyword C<lreturn> that behaves
> > just like C<return>, but returns the lvalue instead of the rvalue. After
> > returning, everything is exactly as if the argument to lreturn were
> > specified instead of the subroutine call. The <:lvalue> property is no
> > longer needed and should be removed sine it only causes confusion. A
> > subroutine B<is> not an lvalue thing, it B<returns> an lvalue if it
> > wants to.
> 
> Amen.
> 
> (Tagging a sub to _always_ be an lvalue runs very counter to the flexible
>  context concept of Perl, witness the want()).

But why introduce a new keyword "lreturn"?  What about something like
this?

        sub foo {
            my $lvalue : lvalue;
            ...
            return $lvalue if want('LVALUE');
        }

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]

Reply via email to