Name

pack

Synopsis

pack template, list
                  

Takes a list of values and packs it into a binary structure, returning the string containing the structure. templateis a sequence of characters that give the order and type of values, as follows:

Character

Meaning

@

Null-fill to absolute position.

(

Start of a ( ) group.

a

An ASCII string, will be null padded.

A

An ASCII string, will be space padded.

b

A bit string, low-to-high order (such as vec( )).

B

A bit string, high-to-low order.

c

A signed char value.

C

An unsigned char value.

d

A double-precision float in the native format.

D

A long double-precision float in the native format. Long doubles are avai able only if your system supports long double values and if Perl has been compiled to support these values. Causes a fatal error otherwise. New in 5.8.

f

A single-precision float in the native format.

F

A floating-point value in the native format, i.e., a Perl internal floating-point value (NV). New in 5.8.

h

A hexadecimal string, low nybble first.

H

A hexadecimal string, high nybble first.

i

A signed integer value.

I

An unsigned integer value.

l

A signed long value.

j

A signed integer value, i.e., a Perl internal integer (IV). New in 5.8.

J

An unsigned integer value, i.e., a Perl internal unsigned integer (UV). New in 5.8.

L

An unsigned long value.

n

A short in “network” (big-endian) order.

N

A long in “network” (big-endian) order.

p

A pointer to a string.

P

A pointer to a structure (fixed-length string).

q

A signed quad (64-bit) value. New in 5.8.

Q

An unsigned quad value. Quads are available only if your system supports 64-bit integer values and if Perl has been compiled to support these values. Causes a fatal error otherwise. New in 5.8.

s

A signed short value.

S

An unsigned short value.

v

A short in “VAX” (little-endian) order.

V

A long in “VAX” (little-endian) order.

u

A uuencoded string.

U

A Unicode character number. Encodes to UTF-8 internally (or UTF-EBCDIC in EBCDIC platforms). New in 5.8.

w

A BER compressed integer.

x

A null byte.

X

Back up a byte.

Z

A null terminated (ASCII) string. Will be null padded. New in 5.8.

Each character may optionally be followed by a number that gives a repeat count. Together the character and the repeat count make a field specifier. Field specifiers may be separated by whitespace, which will be ignored. With all types except a and A, the pack function will gobble up that many values from the list. Specifying * for the repeat count means to use however many items are left. The a and A types gobble just one value, but pack it as a string of length count, padding with nulls or spaces as necessary. (When unpacking, A strips trailing spaces and nulls, but a does not.) Real numbers (floats and doubles) are in the native machine format only; due to the multiplicity of floating formats, and the lack of a standard network representation, no facility for interchange has been made.

Generally, the same template may also be used in the unpack function. If you want to join variable length fields with a delimiter, use the join function.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.27.131