当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Perl pack用法及代码示例


描述

此函数计算 LIST 中的表达式,并将它们打包到 EXPR 指定的二进制结构中。使用下表中显示的字符指定格式 -

每个字符都可以选择后跟一个数字,该数字指定要打包的值类型的重复计数。根据格式,可以是半字节、字符或什至位。对于 LIST 中剩余的值,* 值会重复。可以使用 unpack 函数对值进行解包。

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

用法

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

pack EXPR, LIST

返回值

  • 此函数使用 TEMPLATE 返回 LIST 中数据的打包版本以确定其编码方式。

下表给出了要在 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, 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

相关用法


注:本文由纯净天空筛选整理自 Perl pack Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。