44 lines
844 B
Perl
44 lines
844 B
Perl
|
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;
|