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;