in reply to Changing the value of a BigInt?

The standard approach to get a Math::BigInt object with a new value, is to make a new Math::BigInt object. Sorry. Even the result of adding two Math::BigInt objects is a new Math::BigInt.

Are you using the default Math::BigInt driver? Because that one is in Pure Perl, Math::BigInt::Calc...

Use one of the available XS libraries to speed it up, Math::BigInt::BitVect (requires Bit::Vector), Math::BigInt::Pari, or Math::BigInt::GMP. From what I gather, Math::BigInt::FactCalc would be an option too. No I have no idea on which is the fastest option.

If you need precompiled binaries, see which one is available for your platform. For ActivePerl/Win32, I can only find precompiled binaries for Math::Bigint::BitVect, so that looks like the best option there.

I also stumled across a PPM distribution for something called Math::BigIntFast, another wrapper around Bit::Vector by Steffen Beyer, who also made the latter, which isn't available through a normal CPAN search, yet it is on CPAN. I don't know what is going on there.

See also: Re: Predict Random Numbers