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