http://www.perlmonks.org?node_id=317131


in reply to pack peculiarity

What were you expecting?

packing returns a a string that is used by perl for converting between different encodings. The value you are seeing (ABCD) is the value that perl is using. Observe:

#!/usr/bin/perl -wl use strict; my $z = pack "l",1145258561; print my $h = unpack "h*",$z; print my $H = unpack "H*",$z; print my $A = unpack "A*",$z; print my $B = unpack "B*",$z; print my $b = unpack "b*",$z; print my $f = unpack "f*",$z; print my $l = unpack "l*",$z; print my $L = unpack "L*",$z; print pack "h*",$h; print pack "H*",$H; print pack "A*",$A; print pack "B*",$B; print pack "b*",$b; print pack "f*",$f; print pack "l*",$l; print pack "L*",$L; __END__ 14243444 41424344 ABCD 01000001010000100100001101000100 10000010010000101100001000100010 781.035217285156 1145258561 1145258561 ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD

pack and unpack are used for converting between encodings. pack encodes. unpack decodes.