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


Perl unpack用法及代碼示例



說明

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