這個pack, unpack在 “perl語言編程” 有介紹
看起來很復雜
1 #把一個字符串轉為十六進制格式 2 my $source = 'abcd'; 3 unpack('H*', $source); 4 #說明, 這個'H'是說明轉化為十六進制, 后面的*是任意長度,也就是說, 它轉化后多少就多少 5 #如果單純寫unpack('H', $source), 只顯示轉化后的十六進制的第一位字符 6 7 #比如你要把一個十六進制轉為ASCII, 可以這樣: 8 # 十六進位的字串 9 $hex = "61626364"; 10 11 # 轉ASCII 12 $bin = pack('H*', $hex); 13 print "$bin\n"; 14 15 16 #這個pack與unpack除了能轉化進制, 也能提取數據, 比如, 有如下字符串: 17 my $data = '1234567890aABCDE,FG'; 18 #我們要提標1234567890與ABCDE FG, 可以這樣: 19 my($one, $two, $three) = unpack('A10xA5xa2', $data) 20 #這里的一個字符,就用一個A表示。 21 有多少個字符, 就在A后加一個數字,比如'ABC', 是三個字符, 就表示:A3 22 #比如上面的1234567890有十個字符, 就表示A10 23 而那個小寫a, 我們不要, 就用x表示, 這個x表示跳過, 在pack中代表着null 24 #當然, 如果你要提取所有字節, 可以在后面加*, 比如A*
轉自: https://blog.gtwang.org/perl/perl-pack-unpack-tutorial/