diff options
Diffstat (limited to 'contrib/perl5/lib/integer.pm')
-rw-r--r-- | contrib/perl5/lib/integer.pm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/perl5/lib/integer.pm b/contrib/perl5/lib/integer.pm new file mode 100644 index 0000000..8949318 --- /dev/null +++ b/contrib/perl5/lib/integer.pm @@ -0,0 +1,43 @@ +package integer; + +=head1 NAME + +integer - Perl pragma to compute arithmetic in integer instead of double + +=head1 SYNOPSIS + + use integer; + $x = 10/3; + # $x is now 3, not 3.33333333333333333 + +=head1 DESCRIPTION + +This tells the compiler to use integer operations +from here to the end of the enclosing BLOCK. On many machines, +this doesn't matter a great deal for most computations, but on those +without floating point hardware, it can make a big difference. + +Note that this affects the operations, not the numbers. If you run this +code + + use integer; + $x = 1.5; + $y = $x + 1; + $z = -1.5; + +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. + +See L<perlmod/Pragmatic Modules>. + +=cut + +sub import { + $^H |= 1; +} + +sub unimport { + $^H &= ~1; +} + +1; |