Skip Menu |

This queue is for tickets about the bignum CPAN distribution.

Report information
The Basics
Id: 99480
Status: new
Priority: 0/
Queue: bignum

People
Owner: Nobody in particular
Requestors: bohica [...] ntlworld.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.37
Fixed in: (no value)



Subject: Can't use an undefined value as an ARRAY reference at Math/BigInt/Calc­.pm line 1259
You can find the node on perlmonks that I started about this at http://perlmonks.org/?node_id=1103151 I've come across an issue in some test code which I've reduced down. This initially came about because one test module used Math::FixedPrecision and another test module used bignum. The two were not used together until a new test was written which needed both and then stringifcation of Math::FixedPrecision started failing with <i>Can't use an undefined value as an ARRAY reference</i>. The reduced version is just to simplify the problem, it serves no useful purpose. I also don't understand why "no bignum" does not fix the issue. This works: use strict; use warnings; use Data::Dumper; { require Math::FixedPrecision; my $one = Math::FixedPrecision->new('2', 2); print Dumper($one); print Dumper("$one"); } outputting $VAR1 = bless( { '_m' => [ 2 ], '_es' => '+', '_p' => -2, '_e' => [ 0 ], 'sign' => '+' }, 'Math::FixedPrecision' ); $VAR1 = '2.00'; and this does not work use strict; use warnings; use bignum; use Data::Dumper; { no bignum; require Math::FixedPrecision; my $one = Math::FixedPrecision->new('2', 2); print Dumper($one); print Dumper("$one"); } outputting $VAR1 = bless( { 'value' => [ 2 ], '_p' => -2, 'sign' => '+' }, 'Math::FixedPrecision' ); Can't use an undefined value as an ARRAY reference at /home/perlbrew/perls/perl-5.16.0/lib/5.16.0/Math/BigInt/Calc.pm line 1259. Notice the lack of a mantissa in the second case which is actually what causes the final error in Math::BigInt::Calc. I read the following from bignum pod: The entire upgrading/downgrading is still experimental and might not work as you expect or may even have bugs. You might get errors like this: Can't use an undefined value as an ARRAY reference at /usr/local/lib/perl5/5.8.0/Math/BigInt/Calc.pm line 864 This means somewhere a routine got a BigFloat/Lite but expected a BigInt (or vice versa) and the upgrade/downgrad path was missing. This is a bug, please report it so that we can fix it. I have: bignum 0.37 Math::BigFloat 1.9991 Math::BigInt 1.9993 Martin -- Martin J. Evans Wetherby, UK