perl中的pack與unpack

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

相關文章
相關標籤/搜索