in reply to Shipping standalone perl apps on Win32

Just a question ... you say that after you generate the EXE you may need to copy the DLLs it uses into the same directory as is the EXE. But there's a big problem with this. Suppose you use two modules Foo::Something and Bar::Something. Both these modules have an XS part and therefore a DLL. But both DLLs are named Something.DLL !!!

How do you solve this?

I'm not sure about perl2exe, but PerlApp (from ActiveState's PDK) solves this by renaming the DLLs based on their MD5 hash (eg. 818b4489de35cc38bfbca181f20a1f1e.dll) and somehow changes the DLL loading so that the right DLL is found. Plus PerlApp and perl2exe packs the DLLs into the EXE so you do not have to care about them. To install your application you only have to copy the EXE.

I don't say App::Packer is useless, far from it, but I'm afraid it'll take some time for it to get where perl2exe and PerlApp are now.


  • Comment on Re: Shipping standalone perl apps on Win32

Replies are listed 'Best First'.
Re: Shipping standalone perl apps on Win32
by crenz (Priest) on Nov 28, 2002 at 23:40 UTC

    You're perfectly right, although perl2exe and perlApp seem to have their own problems :-)

    It seems like PAR and App::Packer might be merging soon, so let's hope something good comes out of this marriage.

    On another note -- another solution I found proposed is to just put wperl.exe, perl56.dll, the script and the necessary libraries in lib/ into a directory and install it like that. It also works nicely, and starts up faster. You could always create a shortcut to start the app.

      I use tinyperl to do make small exe file, It is quite buggy but it works fine for very basics (not extra libraries used) things. Usually my exe are 94 Ko. plus the perl58.dll which is 380 ko. Do you think I can do stuff like that with a regular perl exe from your packager?? What would be the size of it?? thanx.. piČ