Funzione di decompressione Perl

Descrizione

Questa funzione decomprime la stringa binaria STRING utilizzando il formato specificato in TEMPLATE. Sostanzialmente inverte l'operazione di pack, restituendo la lista dei valori impacchettati secondo il formato fornito.

È inoltre possibile anteporre a qualsiasi campo di formato un% <numero> per indicare che si desidera un checksum a 16 bit del valore di STRINGA, invece del valore.

Sintassi

Di seguito è riportata la semplice sintassi per questa funzione:

unpack TEMPLATE, STRING

Valore di ritorno

Questa funzione restituisce l'elenco dei valori decompressi.

Ecco la tabella che fornisce i valori da utilizzare in TEMPLATE.

Sr.No. Carattere e descrizione
1

a

Stringa di caratteri ASCII riempita con caratteri nulli

2

A

Stringa di caratteri ASCII riempita di spazi

3

b

Stringa di bit, prima il più basso

4

B

Stringa di bit, prima la più alta

5

c

Un carattere con segno (intervallo solitamente da -128 a 127)

6

C

Un carattere senza segno (solitamente 8 bit)

7

d

Un numero a virgola mobile a precisione doppia

8

f

Un numero a virgola mobile a precisione singola

9

h

Stringa esadecimale, prima la cifra più bassa

10

H

Stringa esadecimale, prima la cifra più alta

11

i

Un numero intero con segno

12

I

Un numero intero senza segno

13

l

Un intero lungo con segno

14

L

Un numero intero lungo senza segno

15

n

Un numero intero breve in ordine di rete

16

N

Un numero intero lungo in ordine di rete

17

p

Un puntatore a una stringa

18

s

Un numero intero breve con segno

19

S

Un numero intero breve senza segno

20

u

Converti in formato uuencode

21

v

Un numero intero corto in ordine VAX (little endian)

22

V

Un numero intero lungo in ordine VAX

23

x

Un byte nullo

24

X

Indica "torna indietro di un byte"

25

@

Riempi con valori nulli (ASCII 0)

Esempio

Di seguito è riportato il codice di esempio che mostra il suo utilizzo di base:

#!/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";

Quando viene eseguito il codice sopra, produce il seguente risultato:

bits are A
bits are 
bits are T-
Array 255
Array T
Array 30