- Perl 基础知识
- Perl - 主页
- Perl - 简介
- Perl - 环境
- Perl - 语法概述
- Perl - 数据类型
- Perl - 变量
- Perl - 标量
- Perl - 数组
- Perl - 哈希
- Perl - IF...ELSE
- Perl - 循环
- Perl - 运算符
- Perl - 日期和时间
- Perl - 子例程
- Perl - 参考资料
- Perl - 格式
- Perl - 文件 I/O
- Perl - 目录
- Perl - 错误处理
- Perl - 特殊变量
- Perl - 编码标准
- Perl - 正则表达式
- Perl - 发送电子邮件
- Perl 高级
- Perl - 套接字编程
- Perl - 面向对象
- Perl - 数据库访问
- Perl - CGI 编程
- Perl - 包和模块
- Perl - 流程管理
- Perl - 嵌入式文档
- Perl - 函数参考
- Perl 有用资源
- Perl - 问题与解答
- Perl - 快速指南
- Perl - 有用的资源
- Perl - 讨论
Perl 解包函数
描述
该函数使用 TEMPLATE 中指定的格式解压二进制字符串 STRING。基本上反转 pack 的操作,根据提供的格式返回打包值的列表。
您还可以在任何格式字段前添加 %<number> 前缀,以指示您需要 STRING 值(而不是实际值)的 16 位校验和。
句法
以下是该函数的简单语法 -
unpack TEMPLATE, STRING
返回值
该函数返回解压值的列表。
下面的表格给出了 TEMPLATE 中使用的值。
先生。 | 特征及描述 |
---|---|
1 | A 用空字符填充的 ASCII 字符串 |
2 | A 用空格填充的 ASCII 字符串 |
3 | 乙 位串,最低的在前 |
4 | 乙 位串,最高的在前 |
5 | C 有符号字符(范围通常为 -128 到 127) |
6 | C 无符号字符(通常为 8 位) |
7 | d 双精度浮点数 |
8 | F 单精度浮点数 |
9 | H 十六进制字符串,最低数字在前 |
10 | H 十六进制字符串,最高位在前 |
11 | 我 有符号整数 |
12 | 我 无符号整数 |
13 | 我 有符号长整型 |
14 | L 无符号长整型 |
15 | n 网络顺序的短整数 |
16 | 氮 网络顺序的长整数 |
17 号 | p 指向字符串的指针 |
18 | s 有符号短整型 |
19 | S 无符号短整型 |
20 | 你 转换为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