This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mention the -Minteger effect on modulus (from Nathan Torkington)
authorGurusamy Sarathy <gsar@cpan.org>
Sun, 18 Jul 1999 01:16:59 +0000 (01:16 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Sun, 18 Jul 1999 01:16:59 +0000 (01:16 +0000)
p4raw-id: //depot/perl@3690

lib/integer.pm

index 8949318..f6be58a 100644 (file)
@@ -28,6 +28,17 @@ code
 you'll be left with C<$x == 1.5>, C<$y == 2> and C<$z == -1>.  The $z
 case happens because unary C<-> counts as an operation.
 
 you'll be left with C<$x == 1.5>, C<$y == 2> and C<$z == -1>.  The $z
 case happens because unary C<-> counts as an operation.
 
+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<perlmod/Pragmatic Modules>.
 
 =cut
 See L<perlmod/Pragmatic Modules>.
 
 =cut