How to combine "embedded Perl" and XS to call from Perl to C?

[email protected] (Manuel Reimer) Thu, 21 Aug 2014 17:38:02 +0200
Newsgroups perl.xs
Message-ID <[email protected]>
Hello,

there are good examples on how to embed perl:

http://perldoc.perl.org/perlembed.html

And there are good examples on how to use XS:

http://perldoc.perl.org/perlxstut.html

My problem: The first tutorial only shows how to call from C to Perl and 
the second one only shows how to call C functions and libraries.

What I'm searching for is some example that shows how I can allow my 
embedded Perl interpreter to call functions in the C code that embeds 
the interpreter.

My idea is to embed an interpreter into some application that only 
allows plugins to be written in C. This application offers some header 
files that have to be used by plugin developers. The resulting plugin is 
a ".so" file which is loaded by the main application.

I guess embedding the interpreter will not really be a big deal and even 
calling from "main application" into the loaded Perl script seems to be 
pretty easy. The problem is that I somehow have to expose the API, 
described by the header files, into my Perl script, to allow the Perl 
code to call functions in the C API provided by the main application.

Maybe the second problem will be that the API is written in C++, but 
maybe I'll just wrap this into a function oriented interface if it is 
too difficult to expose a C++ class to Perl code.

Can someone give me some information on how to do this?

Thank you very much in advance.

Greetings,

Manuel