Just another Perl shrine | |
PerlMonks |
Extending an embedded Perl interpreter without a .pm fileby ShodadVenturi (Acolyte) |
on Feb 07, 2005 at 22:00 UTC ( [id://428832]=perlquestion: print w/replies, xml ) | Need Help?? |
ShodadVenturi has asked for the wisdom of the Perl Monks concerning the following question:
Okay, I have a C application that needs to execute fragments of Perl script provided by the user. I have successfully embedded the Perl interpreter, and it is working great. The next step is to provide the ability for the user to make calls into my C program to get certain information, take certain actions, etc. I have written an extension using SWIG, and built that into my program as well. After constructing my perl interpreter, with the appropriate xs_init function that adds my DynTrans as a static XSUB, I immediately use: To get my custom functions into the perl interpreter's namespace. This all works correctly, and I can call into my C program from the Perl script. So, the problem: In order for this to work, I have to have DynTrans.pm in the directory where I run my application. I want to remove this requirement, I want the entire application to be completely self-contained. I have gone so far as to modify my code like this:
The perl_setup_module creates the DynTrans.pm file, and the perl_cleanup_module deletes it, and this also works. However I don't like the fact of needing to drop a temporary file on the user's filesystem.
So, the question: Is there a way that I can make XSUBs availiable to my perl interpreter without having to have the .pm file around at all? What I would really like is a programatic interface into whatever the use DynTrans; perl stuff does. I have read and re-read perlembed, perlxs, perlguts, perlapi, perlcall, several perl books, forums, SuperSearch, etc. and I cannot find a way to do this. Can anyone save me from the dreaded .pm file? Thanks in advance.
Back to
Seekers of Perl Wisdom
|
|