Win8 Strawberry 5.30.3.1 (64) Mon 08/30/2021 18:36:38 C:\@Work\Perl\monks >perl -Mstrict -Mwarnings my @n_list = (0, 1, 255, 256, 65535, 65536, 16777215, 16777216, 4294967295,); sub n2hstr_2 { # compatible with perl version 5.8 return join ' ', map { my $w = $_ > 65535 ? 8 : $_ > 255 ? 4 : 2; unpack '(a2)*', sprintf '%0*x', $w, $_; } @_ ; } sub number2hexString { my $output; my $packTemplate; foreach my $i (@_) { if ($i > 65535) { $packTemplate = 'L>'; } elsif ($i > 255) { $packTemplate = 'S>'; } else { $packTemplate = 'C'; } $output .= join(' ', unpack('(H2)*', pack($packTemplate, $i))).' '; } return $output; } my $n_n2hstr = n2hstr_2 (@n_list); my $n_number2hexString = number2hexString(@n_list); print "@n_list \n"; print "'$n_n2hstr' \n"; print "'$n_number2hexString' \n"; ^Z 0 1 255 256 65535 65536 16777215 16777216 4294967295 '00 01 ff 01 00 ff ff 00 01 00 00 00 ff ff ff 01 00 00 00 ff ff ff ff' '00 01 ff 01 00 ff ff 00 01 00 00 00 ff ff ff 01 00 00 00 ff ff ff ff '