use warnings;
use integer; # makes no difference
# 144115188075868217 == (2 ** 57) + 12345
$string1 = '144115188075868217';
$string2 = '144115188075868217crap';
$string1 += 0;
{
no warnings 'numeric';
$string2 += 0;
}
print $string1, "\n";
#prints 144115188075868217 ... correct
print $string2, "\n";
# prints 144115188075868224 ... wrong
####
use warnings;
use integer; # makes no difference
$num = 1.44115188075868217e17;
print $num, "\n";
#prints 1.44115188075868e+017
####
$string =~ s/\.//;
$string =~ s/e/crap//i;