Función de desempaquetado de Perl

Descripción

Esta función descomprime la cadena binaria STRING usando el formato especificado en PLANTILLA. Básicamente invierte la operación del paquete, devolviendo la lista de valores empaquetados de acuerdo con el formato proporcionado.

También puede prefijar cualquier campo de formato con% <número> para indicar que desea una suma de comprobación de 16 bits del valor de STRING, en lugar del valor.

Sintaxis

A continuación se muestra la sintaxis simple para esta función:

unpack TEMPLATE, STRING

Valor devuelto

Esta función devuelve la lista de valores desempaquetados.

Aquí está la tabla que da los valores que se utilizarán en PLANTILLA.

No Señor. Descripción del personaje
1

a

Cadena de caracteres ASCII rellenada con caracteres nulos

2

A

Cadena de caracteres ASCII rellenada con espacios

3

b

Cadena de bits, el más bajo primero

4

B

Cadena de bits, el más alto primero

5

c

Un carácter con signo (rango generalmente de -128 a 127)

6

C

Un carácter sin signo (generalmente 8 bits)

7

d

Un número de coma flotante de doble precisión

8

f

Un número de punto flotante de precisión simple

9

h

Cadena hexadecimal, el dígito más bajo primero

10

H

Cadena hexadecimal, el dígito más alto primero

11

i

Un entero con signo

12

I

Un entero sin signo

13

l

Un entero largo con signo

14

L

Un entero largo sin signo

15

n

Un número entero corto en orden de red

dieciséis

N

Un entero largo en orden de red

17

p

Un puntero a una cuerda

18

s

Un entero corto con signo

19

S

Un entero corto sin signo

20

u

Convertir a formato uuencode

21

v

Un número entero corto en orden VAX (little-endian)

22

V

Un entero largo en orden VAX

23

x

Un byte nulo

24

X

Indica "retroceder un byte"

25

@

Rellenar con nulos (ASCII 0)

Ejemplo

A continuación se muestra el código de ejemplo que muestra su uso básico:

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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