Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Pack multiple scripts in executables with one shared core dll

by Lion-Tiger (Novice)
on Nov 20, 2011 at 01:27 UTC ( [id://939021]=perlquestion: print w/replies, xml ) Need Help??

Lion-Tiger has asked for the wisdom of the Perl Monks concerning the following question:

I'd want to ask u, is there a way to pack a script into executable + perl.dll kinda file (where Perl core and all needed modules are), so that i can pack another script in executable and they will share this core dll between them?

Think I'll do it this way:
http://www.perlmonks.org/?node_id=939071

Replies are listed 'Best First'.
Re: Pack multiple scripts in executables with one shared core dll
by Anonymous Monk on Nov 20, 2011 at 05:29 UTC

    Yeah, PAR is PAR

    You can pack however many modules (scripts) you want, and invoke each using mybigfatexe fooapp ... via .bat/.lnk/shellscript/.exe

    Same strategy would work for perlapp or perl2exe

    You could also pack PAR::WebStart's perlws, and pack each app using its make_par, then invoke each app using mybigfatexeshortcut.lnk or mybigfatexeshortcut.bat, or mybigfatexeshortcut.exe which just does system perlws.exe mybigfatexeshortcut.pnlp

    cava packager provides something like out of the box

      The main problem with PAR is that it packs in one exe perl core and all used modules, so out exe is very big...
      And if I need more than one script, all of them will be packed with it's own perl and used modules!
      That's useless =(
      So if there is a way to pack scripts in small executables that use some other dll with perl and all needed modules?

        “Inconvenient,” perhaps, but not “useless.”

        In all seriousness, what is so utterly wrong with just using a subdirectory?   Apple’s OS/X system is rather elegant, I think, in taking that approach with how they package all applications:   they’re actually folders.   Just put your executable together more-or-less as a stub, and put the necessary Perl source modules into a directory in a chosen location.

        (When I have done this, I used a nested directory structure:   the outer directory contained README.TXT and an inner folder named guts.   The entire thing was marked read-only.   And the README file contained a message which basically said:   “Keep your mitts off that folder and everything that it contains.   These aren’t the ’droids you’re looking for.”   I got a few whimsical comments about that, so I know that some people read it.)   To me, this is every bit as convenient a form of “packaging” as a DLL-file would be, and considerably more maintainable.   It might well be more efficient, too, because Windows will routinely use VM-mapped file I/O when working with files.

        The main problem with PAR is that it packs in one exe perl core and all used modules, so out exe is very big... And if I need more than one script, all of them will be packed with it's own perl and used modules!

        Not if you pack them all in the same file as I already explained.

        That's useless =(

        Yes, reading is hard :)

        I do find working software is very useful

        So if there is a way to pack scripts in small executables that use some other dll with perl and all needed modules?

        My answer in Re: Pack multiple scripts in executables with one shared core dll wasn't a joke, either the par way, or the cava packager way is workable, and you can always create a relocatable perl and add modules to it, zip it, and ship it , if that works for your platform

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://939021]
Approved by davido
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2024-03-29 14:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found