當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。