TheHobbit has asked for the wisdom of the Perl Monks concerning the following question:
Please enlighten me.... I'd like to detect overflow during integer operations. Using the integer pragma guarantees that Perl does not converts integers to reals, but it doesn't detect overflow...
I'm trying to write a Perl module to do arithmetic on arbitrary precision integers. Obviously, these new operation will pay an overload on built-in operators for these cases in which the latter can be used. So I'd like to use standard built-in whenever possible. I tried to do something like
sub add { use integers; my $result = eval {$_[0] + $_[1]}; return $result if (defined $result); goto &myadd; }
where myadd is the subroutine handling the case where one at least is a "big" integer.. Well, it didn't work :( Even with the inter pragma, overflow errors aren't detected... Any idea?
TheHobbit</strong/
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Detecting ineger overflow
by dchetlin (Friar) on Dec 10, 2000 at 21:46 UTC | |
by tye (Sage) on Dec 12, 2000 at 00:10 UTC | |
|
Re: Detecting ineger overflow
by quidity (Pilgrim) on Dec 10, 2000 at 21:07 UTC | |
by tilly (Archbishop) on Dec 10, 2000 at 23:23 UTC | |
|
(tye)Re: Detecting ineger overflow
by tye (Sage) on Dec 12, 2000 at 00:07 UTC |