in reply to native byte order integer and utf-8

Hello bhildred, and welcome to the Monastery!

The sizes of the integer templates 'i' and 'I' are variable by design. For fixed-size integers, use one of following (signed/unsigned): c/C (8 bits), s/S (16 bits), l/L (32 bits), q/Q (64 bits). Since you specify an “unsigned 32-bit number”, use 'L':

$packed = pack 'L', $count; ... $count = unpack 'L', $packed;

(The template sizes are clearly documented on page 801 of the Camel Book, 4th Edition, 2012. L is “An unsigned long value, always 32 bits”.)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,