I'm curious why this dumps the reference to @result.
Consider:
22:45 >perl -MData::Dumper -wE "my @c = ( 5, 7, 11 ); say Dumper @c; s +ay Dumper \@c;" $VAR1 = 5; $VAR2 = 7; $VAR3 = 11; $VAR1 = [ 5, 7, 11 ]; 22:46 >
I prefer the second form, because I can more easily see the related things grouped together (but YMMV).
my run at the problem resulted in this code:
And now the problem can be diagnosed! It’s in this line:
my @factors = [ ];
The square brackets create an empty, anonymous array, and a reference to this anonymous array becomes the first element in the named array @factors. Later, when List::Util::max is called on @factors, it tries to compare the elements in the array to one another, but fails because it doesn’t know how to compare an array reference (that first element) to a Math::BigInt object.
The solution is to simply remove the anonymous array reference, which isn’t needed anyway:
my @factors;
and the code now runs without error!
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^3: List::Util can't find max in array of BigInts
by Athanasius
in thread List::Utils can't find max in array of BigInts
by mgatto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |