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 - [EMAIL PROTECTED]
http://www.pjcj.net

Reply via email to