in reply to Perl wrappers for C++ classes

It will end up being more work, but you could create C wrapper functions for the C++ calls (casting the C++ objects to a void* or something similar) and then make the C functions available through XS, which should be simpler than trying to make C++ code directly available.

If you write your code as a perl object (module), you can store the C++ object (the void*) in the perl object, that way each of the C XS/wrapper functions would have access to the C++ object through $self which would allow you to pass it through to the C++ code.

Does this make sense?

HTH

Kyle