在Perl中,pack并unpack有从十六进制字节转换成/两个模板:
h十六进制字符串(首先是低nybble).
H十六进制字符串(首先是高nybble).
最好用一个例子来澄清:
use 5.010; # so I can use say
my $buf = "\x12\x34\x56\x78";
say unpack('H*', $buf); # prints 12345678
say unpack('h*', $buf); # prints 21436587
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,H人们在考虑将字节转换为十六进制/从十六进制转换时通常意味着什么.那么目的是h什么?拉里一定以为有人可能会使用它,否则他就不会费心去包括它.
你能给出一个真实世界的例子,你真的想用h而不是H用pack或者unpack吗? 我正在寻找一个具体的例子; 如果你知道一台机器组织它的字节,它是什么,你可以链接到它的一些文件?
我可以想一下你可以使用 的例子h,例如当你不关心格式时序列化一些数据,只要你能读回来,但对它H来说同样有用.我在寻找其中一个例子h是更比有用H.