[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.117.71.102: ~ $
package integer;

our $VERSION = '1.00';

=head1 NAME

integer - Perl pragma to use integer arithmetic instead of floating point

=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 in performance.

Note that this only affects how most of the arithmetic and relational
B<operators> handle their operands and results, and B<not> how all
numbers everywhere are treated.  Specifically, C<use integer;> has the
effect that before computing the results of the arithmetic operators
(+, -, *, /, %, +=, -=, *=, /=, %=, and unary minus), the comparison
operators (<, <=, >, >=, ==, !=, <=>), and the bitwise operators (|, &,
^, <<, >>, |=, &=, ^=, <<=, >>=), the operands have their fractional
portions truncated (or floored), and the result will have its
fractional portion truncated as well.  In addition, the range of
operands and results is restricted to that of familiar two's complement
integers, i.e., -(2**31) .. (2**31-1) on 32-bit architectures, and
-(2**63) .. (2**63-1) on 64-bit architectures.  For example, this code

    use integer;
    $x = 5.8;
    $y = 2.5;
    $z = 2.7;
    $a = 2**31 - 1;  # Largest positive integer on 32-bit machines
    $, = ", ";
    print $x, -$x, $x + $y, $x - $y, $x / $y, $x * $y, $y == $z, $a, $a + 1;

will print:  5.8, -5, 7, 3, 2, 10, 1, 2147483647, -2147483648

Note that $x is still printed as having its true non-integer value of
5.8 since it wasn't operated on.  And note too the wrap-around from the
largest positive integer to the largest negative one.   Also, arguments
passed to functions and the values returned by them are B<not> affected
by C<use integer;>.  E.g.,

    srand(1.5);
    $, = ", ";
    print sin(.5), cos(.5), atan2(1,2), sqrt(2), rand(10);

will give the same result with or without C<use integer;>  The power
operator C<**> is also not affected, so that 2 ** .5 is always the
square root of 2.  Now, it so happens that the pre- and post- increment
and decrement operators, ++ and --, are not affected by C<use integer;>
either.  Some may rightly consider this to be a bug -- but at least it's
a long-standing one.

Finally, C<use integer;> also has an additional affect on the bitwise
operators.  Normally, the operands and results are treated as
B<unsigned> integers, but with C<use integer;> the operands and results
are B<signed>.  This means, among other things, that ~0 is -1, and -2 &
-5 is -6.

Internally, 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<perlmodlib/"Pragmatic Modules">, L<perlop/"Integer Arithmetic">

=cut

$integer::hint_bits = 0x1;

sub import {
    $^H |= $integer::hint_bits;
}

sub unimport {
    $^H &= ~$integer::hint_bits;
}

1;

Filemanager

Name Type Size Permission Actions
App Folder 0755
Archive Folder 0755
Attribute Folder 0755
B Folder 0755
CPAN Folder 0755
Class Folder 0755
Compress Folder 0755
Config Folder 0755
DBM_Filter Folder 0755
Devel Folder 0755
Encode Folder 0755
ExtUtils Folder 0755
File Folder 0755
Filter Folder 0755
Getopt Folder 0755
HTTP Folder 0755
I18N Folder 0755
IO Folder 0755
IPC Folder 0755
JSON Folder 0755
LWP Folder 0755
Locale Folder 0755
Log Folder 0755
Math Folder 0755
Memoize Folder 0755
Module Folder 0755
Net Folder 0755
Object Folder 0755
Package Folder 0755
Perl Folder 0755
PerlIO Folder 0755
Pod Folder 0755
Search Folder 0755
Term Folder 0755
Test Folder 0755
Text Folder 0755
Thread Folder 0755
Tie Folder 0755
Time Folder 0755
URI Folder 0755
Unicode Folder 0755
User Folder 0755
Version Folder 0755
encoding Folder 0755
overload Folder 0755
pod Folder 0755
unicore Folder 0755
vendor_perl Folder 0755
warnings Folder 0755
AnyDBM_File.pm File 2.56 KB 0644
AutoLoader.pm File 14.66 KB 0644
AutoSplit.pm File 19.18 KB 0644
Benchmark.pm File 27.87 KB 0644
CORE.pod File 2.7 KB 0644
CPAN.pm File 132.91 KB 0644
DB.pm File 18.43 KB 0644
DBM_Filter.pm File 14.06 KB 0644
DirHandle.pm File 1.52 KB 0644
Dumpvalue.pm File 16.5 KB 0644
English.pm File 4.34 KB 0644
FileCache.pm File 5.44 KB 0644
FileHandle.pm File 6.62 KB 0644
FindBin.pm File 4.45 KB 0644
LWP.pm File 21.15 KB 0644
Memoize.pm File 34.4 KB 0644
NEXT.pm File 18.05 KB 0644
PerlIO.pm File 10.19 KB 0644
Safe.pm File 24.03 KB 0644
SelectSaver.pm File 1.05 KB 0644
SelfLoader.pm File 16.97 KB 0644
Symbol.pm File 4.68 KB 0644
Test.pm File 28.13 KB 0644
Thread.pm File 8.09 KB 0644
UNIVERSAL.pm File 6.97 KB 0644
URI.pm File 33.01 KB 0644
XSLoader.pm File 9.99 KB 0644
_charnames.pm File 29.8 KB 0644
autouse.pm File 4.14 KB 0644
base.pm File 6.37 KB 0644
bigint.pm File 17.44 KB 0644
bignum.pm File 18.23 KB 0644
bigrat.pm File 14.11 KB 0644
blib.pm File 2.04 KB 0644
bytes.pm File 2.96 KB 0644
bytes_heavy.pl File 758 B 0644
charnames.pm File 19.22 KB 0644
deprecate.pm File 3.01 KB 0644
diagnostics.pm File 17.96 KB 0644
dumpvar.pl File 14.96 KB 0644
feature.pm File 11.06 KB 0644
fields.pm File 9.28 KB 0644
filetest.pm File 3.91 KB 0644
if.pm File 1.13 KB 0644
integer.pm File 3.19 KB 0644
less.pm File 3.13 KB 0644
locale.pm File 2.72 KB 0644
lwpcook.pod File 9.05 KB 0644
lwptut.pod File 24.89 KB 0644
open.pm File 7.83 KB 0644
overload.pm File 52.66 KB 0644
overloading.pm File 1.77 KB 0644
perl5db.pl File 302.79 KB 0644
perlfaq.pm File 94 B 0644
sigtrap.pm File 7.46 KB 0644
sort.pm File 5.95 KB 0644
strict.pm File 3.84 KB 0644
subs.pm File 845 B 0644
utf8.pm File 7.6 KB 0644
utf8_heavy.pl File 30.1 KB 0644
vars.pm File 2.3 KB 0644
vmsish.pm File 4.22 KB 0644
warnings.pm File 18.34 KB 0644