zoukankan      html  css  js  c++  java
  • 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
    ";
    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/

  • 相关阅读:
    P2761 软件补丁问题
    CF1335F Robots on a Grid
    [bzoj2088]P3505 [POI2010]TEL-Teleportation
    CF1335E Three Blocks Palindrome
    P3831 [SHOI2012]回家的路
    P4568 [JLOI2011]飞行路线(分层图)
    P4774 [NOI2018]屠龙勇士
    P2480 [SDOI2010]古代猪文
    CF #632 (Div. 2) 对应题号CF1333
    BSGS 和扩展
  • 原文地址:https://www.cnblogs.com/perl6/p/6136207.html
Copyright © 2011-2022 走看看