Perl 中的 pack函数

首页 / Perl入门教程 / Perl 中的 pack函数

描述

此函数对LIST中的表达式求值并将其打包为EXPR指定的二进制结构。使用下表中显示的字符指定格式-

每个字符可以可选地跟一个数字,该数字指定要打包的值的类型的重复计数。根据格式,该值是半字节,字符或什至位。 *的值重复*,因为LIST中保留了尽可能多的值。可以使用拆包功能将值拆包。

例如,a5表示需要五个字母。 b32表示期望使用32位。 h8表示期望8个字节(或4个字节)。 P10表示该结构的长度为10个字节。

语法

以下是此函数的简单语法-

pack EXPR, LIST

返回值

  • 此函数使用TEMPLATE返回LIST中数据的压缩版本,以确定如何编码。

下表列出了在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, T and 30.
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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Python -〔尹会生〕

React实战进阶45讲 -〔王沛〕

邱岳的产品实战 -〔邱岳〕

分布式技术原理与算法解析 -〔聂鹏程〕

WebAssembly入门课 -〔于航〕

业务开发算法50讲 -〔黄清昊〕

Web漏洞挖掘实战 -〔王昊天〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

结构写作力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)