in reply to undefined value as an ARRAY

I can't answer your question directly, but it seems as though you have either uncovered a bug or you have exceeded some not-so-obviously specified limit of the bfac function of Math::BigFloat. It seems the maximum value for this function is between 2**23 and 2**24. This does not generate the error:
use strict; use warnings; use diagnostics; use Math::BigFloat; my $x = Math::BigFloat->new(2**23); print "x=$x\n"; my $product = $x->copy(); $product->bfac(); print "p=$product\n";

You could submit a bug report on CPAN. But, before doing so, you could use Super Search to see if anyone has encountered similar issues with this module.

I tried Math::BigInt as well, but I get the same results.