----- Original Message ----- 
From: "Larry Wall" <[EMAIL PROTECTED]>
To: "Perl6" <[EMAIL PROTECTED]>
Sent: Wednesday, January 21, 2004 2:51 PM
Subject: [perl] Re: Comma Operator


> On Tue, Jan 20, 2004 at 08:12:28PM -0800, Jonathan Lang wrote:
> : Joe Gottman wrote:
> : >    About a month ago, a thread here suggested that we change the
meaning
> : > of the comma operator.  Currently, in scalar context the expression
> : >     foo(), bar()
> : > means "evaluate foo(), discard the result, then return the value of
> : > bar()".
> : > It was suggested that this be changed to return the 2-element array
> : > (foo(), bar()).  Has Larry ruled on this yet?
> :
> : Not that I'm aware of.  For the most part, the previous discussion was
> : focusing on what to replace the comma with in the case of "discard all
but
> : the last result", and my impression was that any ruling on the change
> : would likely be contingent on the presence or absence of a suitable
> : replacement.
>
> I'm a little frustrated because I feel like I've ruled on it several
> times, but it never seems to "stick".  I guess that's because it was
> never ruled in an Apocalypse, just in email.  But I'm sure I'm on
> the record somewhere saying that I think [-1] is sufficient to pick
> out the last element of a list.  If nothing else, just a couple of
> days ago, but I'm sure I also said it more than once in ancient times.
>

Great, so
    $x = foo(), bar();
means the same thing as
    $x = ( foo(), bar() );

 Is the optimizer going to be smart enough so that given the expression
    $x = (foo(), bar(), glarch())[-1];

Perl6 won't have to construct a three-element array just to return the last
element?

Joe Gottman


Reply via email to