Skip Menu |

This queue is for tickets about the Math-BigRat CPAN distribution.

Report information
The Basics
Id: 113444
Status: new
Priority: 0/
Queue: Math-BigRat

Owner: Nobody in particular
Requestors: jim.avera [...]

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

Subject: undef ARRAY ref in doing BigRat == float if 'use bignum' exists in unrelated code
Download (untitled) / with headers
text/plain 1.4k
This is strange. The presence of "use bignum" in a separate, never-reached scope makes == blow up when comparing a BigRat and a native float. I'm running perl 5.20.2 on 64-bit Ubuntu. #!/usr/bin/perl use strict; use warnings; use diagnostics; require Math::BigRat; my $bigval = Math::BigRat->new("123456789876543212345678987654321"); my $float = 1.23456789876543e+32; print "Not equivalent\n" unless ($float == $bigval); # dies here # BUT... if this never-executed code is commented out, the problem goes away { die "Dave's not here"; use bignum; my $x = 42 } And here is the resulting backtrace: Can't use an undefined value as an ARRAY reference at /usr/share/perl/5.20/Math/BigInt/ line 235. Math::BigInt::Calc::_copy("Math::BigInt::Calc", undef) called at /usr/share/perl/5.20/Math/ line 92 Math::BigRat::_new_from_float(Math::BigRat=HASH(0x182e340), Math::BigInt=HASH(0x220b228)) called at /usr/share/perl/5.20/Math/ line 299 Math::BigRat::new("Math::BigRat", 1.23456789876543e+32) called at /usr/share/perl/5.20/Math/ line 2689 Math::BigInt::objectify(2, "Math::BigRat", 1.23456789876543e+32, Math::BigRat=HASH(0x17e70a0)) called at /usr/share/perl/5.20/Math/ line 1348 Math::BigRat::bcmp("Math::BigRat", 1.23456789876543e+32, Math::BigRat=HASH(0x17e70a0)) called at /usr/share/perl/5.20/Math/ line 29 Math::BigFloat::__ANON__(Math::BigRat=HASH(0x17e70a0), 1.23456789876543e+32, 1) called at ./ line 11

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to