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. |