這個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/spa