develooper Front page | perl.perl6.language | Postings from April 2005

Re: [pugs]weird thing with say ++$

Thread Previous | Thread Next
From:
Paul Johnson
Date:
April 21, 2005 03:19
Subject:
Re: [pugs]weird thing with say ++$
Message ID:
20050421094527.GD23088@pjcj.net
On Thu, Apr 21, 2005 at 04:32:41PM +0800, fayland wrote:

> It has been published at perl6.language, but have no reply.
> 
> In perl v5.8.6 built for MSWin32-x86-multi-thread:
> 
> my $i = 1;
> print $i++, ++$i; # 1 3
> my $i = 1;
> print ++$i, $i++; # 3 2
> 
> in pugs:
> 
> my $i = 1;
> say $i++, ++$i; # 1 3
> 
> my $i = 1;
> say ++$i, $i++; # 2 2
> 
> which is right?(I think perl5 is) or it's different between Perl5 and Perl6?

I think I understand the implementation details leading to each
behaviour, but rather than saying which was "right", I think I'd be
quite happy to see Perl6 copy (the ideas behind) C's rules regarding
sequence points and undefined behaviour.  I'm not so sure about
implementation defined and unspecified behaviour.

When I see code such as this, I usually encourage people to program Perl
as if it had sequence points and undefined behaviour.  This often
results in explaining what they are, but maybe that's not such a great
problem.

See http://www.eskimo.com/~scs/C-faq/faq.html, especially sections 3.8
and 11.33 for details.

-- 
Paul Johnson - paul@pjcj.net
http://www.pjcj.net

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About