use strict; use warnings; my $num4g = 2 ** 32; my $grt4g = 500_000 + $num4g ; my $start = $num4g - 50; my $no = 0; while ( 1 ) { my $no1 = Pack( $start ); my $result = UnPack( "$no1" ); if ( $start != $result ) { die "not match"; } $start++; $no++; if ( $start >= $grt4g ) { print "Okay ( $no )\n"; exit; } } sub Pack { my $input = shift; my $lower = $input % $num4g; my $upper = int ( $input / $num4g ); return ( pack("N N", $upper, $lower ) ); } sub UnPack { my $input = shift; my ( $upper, $lower ) = unpack("N N", $input); return ( ( $upper * $num4g ) + $lower ); } 1;