use Math::BigInt; $i = Math::BigInt->new($string);
$i->bneg return BINT negation $i->babs return BINT absolute value $i->bcmp(BINT) return CODE compare numbers (undef,<0,=0,>0) $i->badd(BINT) return BINT addition $i->bsub(BINT) return BINT subtraction $i->bmul(BINT) return BINT multiplication $i->bdiv(BINT) return (BINT,BINT) division (quo,rem) just quo if scalar $i->bmod(BINT) return BINT modulus $i->bgcd(BINT) return BINT greatest common divisor $i->bnorm return BINT normalization
$i = new Math::BigInt '123 456 789 123 456 789';
Actual math is done in an internal format consisting of an array whose first element is the sign (/^[+-]$/) and whose remaining elements are base 100000 digits with the least significant digit first. The string `NaN' is used to represent the result when input arguments are not numbers, as well as the result of dividing by zero.
'+0' canonical zero value ' -123 123 123' canonical value '-123123123' '1 23 456 7890' canonical value '+1234567890'