So now, in the XS world, I've found myself facing a couple of things: 64 bit stuff and ipv6 (128 bits).
In the XS world, Math::Int64 works quite nicely. However, I get way too many explosions with Math::128 at this point. So, I end up using packed arrays and timely casting, while hopefully not misplacing network byte-order.
32-bit (and I guess 64-bit?) perl has unsigned, int, 'double', and 'string'. (e.g. UV, IV, NV, and PV). There is no native perl guarantee for 64-bit or 128-bit other than a string.
I understand the perils of assuming too much about the data types. But in the world of XS, <whimper>