[I'm not sure where to tack this on. Please don't put any significance
on how I'm attaching this to the thread. Also, I sent the same material
earlier today, but I think it went off into never-never-land. If you
receive this twice, my apologies.]
There is a lot of noise on this channel about perl2exe. I feel obligated
to throw in what I know. I'm a little upset by this as this is my first
post to the list, and I would much prefer to sit back and see how the
list functions before I speak up. But serious disinformation needs to be
countered if this list is to serve its purpose.
I have used perl2exe successfully in a mixed Win98, WinNT environment.
There was a need to use a perl script I wrote on my personal Win98
machine on a number of WinNT machines on a secure network. Installing
Perl itself and running the script directly was out of the question:
this would have created an unacceptable security risk. It also would
have been a headache to maintain, since the "wetware" in that
environment is not reliable in either intelligence or intent.
My original script was 12 kb, and used Perl/Tk. Perl2exe compiled it
into a 1.6 Mb program, which archived to about 850 kb using WinZip (for
transport and installation). These are acceptable sizes for stand-alone
Windows apps. Note that the fixed overhead for perl2exe is around 1.5
Mb: a script ten times longer than mine could be expected to compile to
under 1.7 Mb.
Perl2exe does compile the script into a binary executable complete with
the needed routines pulled out of the Perl installation. The result is a
true binary compilation of the script, which is functionally no
different than what Perl itself does in compiling the script internally
whenever the script is run.
The source script cannot be extracted from the result of perl2exe.
(Well, you could reverse-engineer the thing, but if you've got that
level of skill, you likely have half a dozen more satisfying projects to
work on than hacking somebody else's stuff).
The executable binary will be large, but it will be a fraction of the
size of a full Perl installation (especially if that includes all the
documentation that should go with Perl).
The resulting exe runs as fast as the original Perl script, and no
faster. However the perl2exe executable does not undergo the preparatory
phases of loading Perl itself, then the script, then doing the compiling
phase, so depending on what the application does, the perl2exe product
will appear to be faster to the average user. That was the case in my
application. But it is doubtful that reducing the loading time from
maybe 0.3 seconds to something faster is meaningful.
Perl2exe does a good job of what it does. Don't look for it to speed up
your programs. Don't look for its executables to be small little things.
Do consider it when you want to provide software to someone who
shouldn't have or wouldn't want a full Perl installation on their
machine. Do consider it if you want to keep your source code
proprietary. It is a good product, and worth its low cost in some
situations.
--Will