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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM