Please fix your post, it is breaking the formatting.
As to your problem, consider the following code:
use Math::BigRat;
my $num = Math::BigRat->new(157156424579004107729662594024339596952518
+6964287593983211702071746502379495623702577);
my $num2 = Math::BigRat->new('1571564245790041077296625940243395969525
+186964287593983211702071746502379495623702577');
print "Numeric: $num\n";
print "Stringy: $num2\n";
c:\>perl test.pl
Numeric: 1571564245790040000000000000000000000000000000000000000000000
+000000000000000000000000
Stringy: 1571564245790041077296625940243395969525186964287593983211702
+071746502379495623702577
c:\>_
In the first case, you're trying to make a constant number which has to be passed in to bigrat as a float. In the second case, bigrat gets all the digits nicely.