# "pack" in an untyped language. my $packed = pack('c N c/a*', $c, $i, $s); # "unpack" in an untyped language. my ($c, $i, $s) = unpack('c N c/a*', $packed); #### # "pack" in an typed language. Array unpacked; unpacked.push(c); unpacked.push(i); unpacked.push(s); String packed; pack(packed, "c N c/a*", unpacked); # "unpack" in a typed language. Array unpacked; unpack(packed, "c N c/a*", unpacked); char c = unpacked[0]; int i = unpacked[1]; String s = unpacked[2]; #### # "pack" in a typed language. Func pack_my_format(String& packed, char c, int i, String s) { Array unpacked; unpacked.push(c); unpacked.push(i); unpacked.push(s); pack(packed, "c N c/a*", unpacked); } pack_my_format(String packed, c, i, s); # "unpack" in a typed language. Func unpack_my_format(String packed, char& c, int& i, String& s) { Array unpacked; unpack(packed, "c N c/a*", unpacked); c = unpacked[0]; i = unpacked[1]; s = unpacked[2]; } unpack_my_format(packed, char c, int i, String s);