use strict;
use warnings;
use Digest::SHA qw( sha256_hex );
my $h = 5472151337331275;
print "\$h = >$h<\n\n";
print sha256_hex($h), "\n";
On Perl v5.24.0, which is 64-bit:
17:40 >perl 1639_SoPW.pl
$h = >5472151337331275<
b5951ee4a7cbfdc9df6b1b74de2d1ba865de40796c756cebe88a806c5a7b9e60
17:40 >
— which is as expected. But on Perl v5.14.4, which is 32-bit:
17:33 >perl 1639_SoPW.pl
$h = >5.47215133733128e+015<
32838cef9e4571b4fa9a5297e265cf860a31774de3ca339878d87238af604a45
17:34 >
As Anonymous Monk says, the fix is to turn the argument from a number into a string.
Hope that helps,
|