说明
此函数使用 TEMPLATE 中指定的格式解压缩二进制字符串 STRING。本质上颠倒了打包的操作,根据提供的格式返回打包值的列表。
您还可以在任何格式字段前加上 %<number> 以指示您需要 STRING 值的 16 位校验和,而不是值。
用法
以下是此函数的简单语法 -
unpack TEMPLATE, STRING
返回值
此函数返回解压缩值的列表。
这是给出要在 TEMPLATE 中使用的值的表。
编号 | 人物与说明 |
---|---|
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 | I 无符号整数 |
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
相关用法
- Perl undef用法及代码示例
- Perl unshift()用法及代码示例
- Perl untie用法及代码示例
- Perl unlink用法及代码示例
- Perl unshift用法及代码示例
- Perl utime用法及代码示例
- Perl use用法及代码示例
- Perl umask用法及代码示例
- Perl uc()用法及代码示例
- Perl uc用法及代码示例
- Perl ucfirst用法及代码示例
- Perl sin()用法及代码示例
- Perl abs()用法及代码示例
- Perl kill用法及代码示例
- Perl chop()用法及代码示例
- Perl wantarray用法及代码示例
- Perl gmtime用法及代码示例
- Perl exists()用法及代码示例
- Perl each()用法及代码示例
- Perl split用法及代码示例
- Perl delete()用法及代码示例
- Perl reset()用法及代码示例
- Perl endnetent用法及代码示例
- Perl getpwnam用法及代码示例
- Perl splice用法及代码示例
注:本文由纯净天空筛选整理自 Perl unpack Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。