On Wed, Sep 12, 2001 at 02:35:53PM -0400, Matt Zimmerman wrote: > I think you may be correct in thinking that it may be a floating point > problem. I added some debugging statements to update-alternatives (diff > attached), and it looks like for $var = 1, $var-- is setting $var to 0.5 > (!):
It looks like the problem is with incrementing the undefined value. When this is done (on my Hercules system), the result is a value (distinct from 1) which compares equal to 1, but when 1 is subtracted, becomes 0.5. So: perl -e '$a++; print "$a\n";' Should and does print 1. perl -e '$a++; print "yes" if $a == 1;' Should and does print yes. However, perl -e '$a++;$a--; print "$a\n";' Should print 0, and prints 0.5. perl -e '$a++; $b = $a - 1; print "$b\n";' Should also print 0, and also prints 0.5. perl -e '$a = 1; $a--; print "$a\n";' Should and does print 0. Indications are that this doesn't happen on real live 390 hardware, and only under Hercules, so I'm hesitant to call it a Perl bug. Can anyone with Hercules internals knowledge help me track this down further? -- - mdz

