I did a little experimenting in BigInt.pm V 1.997
Version 1.993 is not affected.
I narrowed it down to this attached tiny (real) patch.
Which is just commenting out a few lines of code.
A few lines below BigInt actually handles the case of a undef so I filed a
bug.
https://rt.cpan.org/Public/Bug/Display.html?id=80162
Adding a negative number to achieve subtraction works.
Another reason it seems like a bug in BigInt
For example I tracked it down to stuff like IS.pm:
$form->format_amount( $myconfig, $form->{invtotal} - $form->{paid}, 2 );
Changing it to
$form->format_amount( $myconfig, - $form->{invtotal} + $form->{paid}, 2 );
Made the error go away in stock BigInt.pm 1.997
$form->{paid} being the undef in my case I think....
If they close my bug as a wont fix then do we need if's every time we do
math in ledgersmb to make sure we are doing math on a defined?
Cheers Turtle
--- BigInt-b.pm 2012-10-12 21:55:30.102263313 -0700
+++ BigInt.pm 2012-10-12 23:25:06.926513039 -0700
@@ -2669,9 +2669,9 @@
# Don't do anything with undefs.
- unless (defined($a[$i])) {
- next;
- }
+ #unless (defined($a[$i])) {
+ # next;
+ #}
# Perl scalars are fed to the appropriate constructor.
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Ledger-smb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel