summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/lib/integer.pm
blob: 894931896fc2a5f9a23c0d94907915d165d4cbf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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;
OpenPOWER on IntegriCloud