This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[win32] merge changes#872,873 from maintbranch
[perl5.git] / lib / integer.pm
1 package integer;
2
3 =head1 NAME
4
5 integer - Perl pragma to compute arithmetic in integer instead of double
6
7 =head1 SYNOPSIS
8
9     use integer;
10     $x = 10/3;
11     # $x is now 3, not 3.33333333333333333
12
13 =head1 DESCRIPTION
14
15 This tells the compiler to use integer operations
16 from here to the end of the enclosing BLOCK.  On many machines, 
17 this doesn't matter a great deal for most computations, but on those 
18 without floating point hardware, it can make a big difference.
19
20 Note that this affects the operations, not the numbers.  If you run this
21 code
22
23     use integer;
24     $x = 1.5;
25     $y = $x + 1;
26     $z = -1.5;
27
28 you'll be left with C<$x == 1.5>, C<$y == 2> and C<$z == -1>.  The $z
29 case happens because unary C<-> counts as an operation.
30
31 See L<perlmod/Pragmatic Modules>.
32
33 =cut
34
35 sub import {
36     $^H |= 1;
37 }
38
39 sub unimport {
40     $^H &= ~1;
41 }
42
43 1;