use strict; use warnings; use Math::Pari; my %zero; my %zero_dot; my %delta; @zero { qw( perl pari ) } = ( 0 ) x 2; @zero_dot{ qw( perl pari ) } = ( 0. ) x 2; $delta{ perl } = 1./7E300 ; $delta{ pari } = PARI( 1./7E300 ); $zero { perl } += $delta{ perl }; $zero_dot{ perl } += $delta{ perl }; $zero { pari } += $delta{ pari }; $zero_dot{ pari } += $delta{ pari }; print ' $delta{ perl }: ', $delta { perl }, $/; print '0 + $delta{ perl }: ', $zero { perl }, $/; print '0. + $delta{ perl }: ', $zero_dot{ perl }, $/; print $/; print ' $delta{ pari }: ', $delta { pari }, $/; print '0 + $delta{ pari }: ', $zero { pari }, $/; print '0. + $delta{ pari }: ', $zero_dot{ pari }, $/; __END__ $delta{ perl }: 1.42857142857143e-301 0 + $delta{ perl }: 1.42857142857143e-301 0. + $delta{ perl }: 1.42857142857143e-301 $delta{ pari }: 1.428571428571428547E-301 0 + $delta{ pari }: 1.428571428571428547E-301 0. + $delta{ pari }: 0.E-92