GIF89a;
affected by C. E.g., srand(1.5); $, = ", "; print sin(.5), cos(.5), atan2(1,2), sqrt(2), rand(10); will give the same result with or without C The power operator C<**> is also not affected, so that 2 ** .5 is always the square root of 2. Now, it so happens that the pre- and post- increment and decrement operators, ++ and --, are not affected by C either. Some may rightly consider this to be a bug -- but at least it's a long-standing one. Finally, C also has an additional affect on the bitwise operators. Normally, the operands and results are treated as B integers, but with C the operands and results are B. This means, among other things, that ~0 is -1, and -2 & -5 is -6. Internally, native integer arithmetic (as provided by your C compiler) is used. This means that Perl's own semantics for arithmetic operations may not be preserved. One common source of trouble is the modulus of negative numbers, which Perl does one way, but your hardware may do another. % perl -le 'print (4 % -3)' -2 % perl -Minteger -le 'print (4 % -3)' 1 See L, L =cut $integer::hint_bits = 0x1; sub import { $^H |= $integer::hint_bits; } sub unimport { $^H &= ~$integer::hint_bits; } 1;