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