Personally I'd look into using magic to handle this. I know that magic is not very well documented, but at least it
is there for this purpose. IIRC the '~' magic is reserved for third-party use - that's what I'd use to hook the additional information that you need.
Check out the sv_magic() and mg_xxx() calls in perlguts and perlapi.
Michael