Can't get your code to work. It dies with message:
Operation `**': no method found,
left argument in overloaded package Math::BigFloat,
right argument has no overloaded magic at test.pl line 17.
Update:
BTW It seems that using Math::BigFloat methods directly is slighly faster then relying on overloaded operations:
use Benchmark;
use Math::BigFloat;
timethese(1000, {
Methods => sub { Math::BigFloat->new(100)->fmul(Math::BigFloat->ne
+w(100)) },
Operations => sub { Math::BigFloat->new(100) * Math::BigFloat->new
+(100) },
});
bash-2.05a$ perl test.pl
Benchmark: timing 1000 iterations of Methods, Operations...
Methods: 2 wallclock secs ( 1.48 usr + 0.01 sys = 1.49 CPU) @ 67
+1.14/s (n=1000)
Operations: 1 wallclock secs ( 1.63 usr + 0.00 sys = 1.63 CPU) @ 61
+3.50/s (n=1000)
--
Ilya Martynov
(http://martynov.org/)