note
vkon
I'll expand a little on my Win32 experience on what I did when I did static ilnkage of perl modules into main executable, which could help you some.
<ul>
<li>rebuilt perl some needed XS modules statically, (this step could be skipped, actually)
<li>installed said perl into some dir for my edits (this could be just normal /opt/perlXXX setup for example)
<li>I cut out all of the Autoloader infrastructure
<li>use something like Module::Scandeps to get needed "pm" files *and* packed these into ZIP; or you can even ZIP all of perl module PMs
<li>some ~20 xxx.pm files are required to bootstrap Archive::ZIP to look into said ZIP archive, so I made in-memory hash of these files, yet I made it fast-to-load by some special technicque, yet I used Compress::Zlib to in-memory_compress it and placed into __DATA__ segment of my bootstrapper
<li>I hooked "CORE::require" so that they look into either said ZIP or into in-memory-hash
</ul>
As a result, I had these 4 files:
<ul>
<li>perl.exe + my larger perl58st.dll (with statically linked extensions, but normal perl.so will also suffice here)
<li>perllib.zip - to contain all pm files
<li>compr.pm - my mentioned hooker and bootstrapper
</ul>
These 4 files contained entire setup with any said number of modules inside, except you should place module's shared library into the same dir, so it will be about 10 files more...
<p>Given that static build isn't easy for you, all other steps could still apply and give you a speed win...
<p><b>addition</b> just thought, that my way gives you universal perl that is quicker-to-startup... If you need faster application run, you can avoid ZIP usage, and place all into in-memory-compressed content, so will be much simplier (yet smaller and faster), but less universal.
<p>HTH,
<br>vkon
1113472
1113603