May 26, 2018

Opaque, extensible XS pointer backed objects using sv_magic

This way of associating structs with Perl space objects is designed to supercede Perl’s builtin T_PTROBJ with something that is designed to be


  • The association of the pointer using sv_magicext can be done on any data type, so you can associate C structs with any representation type.
  • This means that you can add pointers to any object hand coded, Moose or otherwise, while still having instance data in regular hashes.


  • The C pointer is neither visible nor modifiable from Perl space.
  • This prevents accidental corruption which could lead to segfaults using T_PTROBJ e.g. $$ptr_obj = 0.

WWW http//