in reply to pack/unpack specification

The documentation for pack() goes into this is some detail. You should read perldoc -f pack. For example, it says:
The integer formats `s', `S', `i', `I', `l', and `L' are inherently non-portable between processors and operating systems because they obey the native byteorder and endianness. For example a 4-byte integer 0x12345678 (305419896 decimal) be ordered natively (arranged in and handled by the CPU registers) into bytes as 0x12 0x34 0x56 0x78 # little-endian 0x78 0x56 0x34 0x12 # big-endian Basically, the Intel, Alpha, and VAX CPUs are little-endian, while everybody else, for example Motorola m68k/88k, PPC, Sparc, HP PA, Power, and Cray are big-endian. MIPS can be either: Digital used it in little-endian mode; SGI uses it in big- endian mode.

And it runs onward, into the sunset...

Paris Sinclair    |    4a75737420416e6f74686572
pariss@efn.org    |    205065726c204861636b6572
I wear my Geek Code on my finger.