there is a need to tweak the Perl source, if you really want perl executable with any extension to be linked statically into the main executable.
I was able to statically link into perl58.dll Tcl::Tk and some required for me modules. But you need some kind of linking set and some developed approach if you're going to gather some (unknown) extensions into the main exe.
PS.(keep in mind, this is not PAR approach, where huge ZIP is unpacked into %TEMP%)
I had in mind main perl executable but linked in such a way that it runs foo.pl seamlessly (not from any application, we were talking of a way to create EXEs out from perl scripts from the very start.)
suppose you have script foo.pl, which uses Bar:: and Fluffy:: XS extensions.
($^O equals to 'MSWin32' in my explanations)
You want to create foo.exe, much like PAR but with statical linking and w/o temporary unzips.
With an approach kept by me in mind (and by Ilya Zakharevich in mentioned link) you will result in:
The resulting perl executable runs your foo.pl and w/o temporaries.
- perl58s.lib <- static library, which is not against perl58.dll, but rather all the code inside it
- Bar.lib, Fluffy.lib <- same for extensions
- foo.zip <- to contain all text files with Perl scripts: foo.pl, and required perl core library
- perlmain.c from perl source distribution which contains RunPerl call, and link it against all mentioned libs
- concatenate resulting EXE with foo.zip like in Ilya's message