描述
此函数使用TEMPLATE中指定的格式解压缩二进制字符串STRING。基本上颠倒打包的操作,根据提供的格式返回打包值的列表。
You can also prefix any format field with a %<number> to indicate that you want a 16-bit checksum of the value of STRING, instead of the value.
语法
以下是此函数的简单语法-
unpack TEMPLATE, STRING
返回值
此函数返回未打包值的列表。
下表列出了在TEMPLATE中使用的值。
Sr.No. | Character & 描述 |
---|---|
1 |
a 用空字符填充的ASCII字符串 |
2 |
A ASCII字符串用空格填充 |
3 |
b 位串,从低到低 |
4 |
B 比特串,最高优先 |
5 |
c 有符号字符(范围通常为-128至127) |
6 |
C 无符号字符(通常为8位) |
7 |
d 双精度浮点数 |
8 |
f 单精度浮点数 |
9 |
h 十六进制字符串,最低位在前 |
10 |
H 十六进制字符串,高位在前 |
11 |
i 有符号整数 |
12 |
我 无符号整数 |
13 |
l 有符号长整数 |
14 |
L 无符号长整数 |
15 |
n 网络顺序中的短整数 |
16 |
N 网络顺序中的长整数 |
17 |
p 指向字符串的指针 |
18 |
s 有符号的短整数 |
19 |
S 无符号的短整数 |
20 |
u 转换为uuencode格式 |
21 |
v VAX(小尾数)顺序的短整数 |
22 |
V VAX顺序中的长整数 |
23 |
x 空字节 |
24 |
X 表示"返回一个字节" |
25 |
@ 用空值填充(ASCII 0) |
例
以下是显示其基本用法的示例代码-
#!/usr/bin/perl -w $bits=pack("c", 65); # prints A, which is ASCII 65. print "bits are $bits\n"; $bits=pack( "x" ); # $bits is now a null chracter. print "bits are $bits\n"; $bits=pack( "sai", 255, "T", 30 ); # creates a seven charcter string on most computers' print "bits are $bits\n"; @array=unpack( "sai", "$bits" ); #Array now contains three elements: 255, A and 47. print "Array $array[0]\n"; print "Array $array[1]\n"; print "Array $array[2]\n";
执行上述代码后,将产生以下输出-
bits are A bits are bits are ?T- Array 255 Array T Array 30
参考链接
https://www.learnfk.com/perl/perl-unpack.html
标签:unpack,无涯,整数,Perl,字符串,ASCII,print,Array,bits From: https://blog.51cto.com/u_14033984/7135777