Why not use B and Devel::Peek and maybe Devel::Pointer::PP? In fact, does this work anyplace that Emily Dickenson in perl doesn't? It looks like Brian was assuming a standard layout in memory but I don't think this is portable to big endian cpus or to compilers with different packing or reordering.