General
Perl packagers bundle copies of your scripts, required modules and
the Perl Interpreter so that the result can be deployed to machines
without a copy of Perl installed. Even if the target machine does have a
version of Perl Installed, your deployed package need not be dependent
on it. Some packagers bundle everything into a single executable file.
When executed, these files extract the scripts and modules either to
temporary directories or directly to memory. The are then run using a
copy of the Perl Interpreter exactly as your Perl scripts and modules in
your installation are run.
A packaged script will not run any more slowly or quickly than the
original.
There may, however, be some delay on start-up due to the need to extract
packaged files.
Source Hiding
A great deal has been written about attempting to hide perl source
code using packagers and filters. All the popular packagers for Perl
offer the possibility of source hiding in one form or another.
If this is the first piece you have read regarding source hiding,
then in short - no method can be 100% secure. The methods employed by
Perl Packagers may fall some way short of this. How short and what this
actually means is a matter of some contention. Google could keep you
occupied for hours on this question. One thing is certain - if source
hiding is not 100% efficient then someone may retrieve the hidden source
should they wish to.
Nevertheless, many users still wish to apply source hiding techniques
to their distributed perl code.
Cava Packager
Cava Packager builds packages for the Windows 200x/XP/Vista
platforms. Modules and libraries are not compressed but are placed in a
portable directory tree that can be simply copied to any target machine.
This allows easy distribution using installers such as MSI or InnoSetup.
The entire tree can also be zipped for distribution. Because the
libraries and modules are not compressed and so never need to be
extracted, the directory tree can be place on any portable media and run
from that. It is possible to write your application so that no temporary
files are created or required on the target machine.
PerlApp / PDK
PerlApp is part of the Perl Development Kit - a commercial Perl
development kit provided by ActiveState. The PDK is available for
several operating systems including Windows, MacOSX and Linux. It
provides a wide range of options and tools for distribution of your perl
code.
ActiveState
PAR::Packer
PAR::Packer is a freely available packager for perl code. It can be
compiled on several operating systems and has active community support.
Formerly part of PAR which provides a huge number of options for runtime
distribution of code using an installed Perl, the production of
standalone executables is now handled in a separate distribution,
PAR::Packer.
PAR
Homepage
CPAN
PAR::Packer
Perl2Exe
Perl2Exe is a commercial command line program from IndigoSTAR for
converting perl scripts to executable files. This allows you to create
stand alone programs in perl that do not require the Perl interpreter.
You can ship the executable files without having to ship your perl
source code.
Perl2Exe can generate executables for Windows and Unix target hosts.
Perl2Exe can generate cross-platform code. For example you can
generate code for Solaris from a Linux machine.
Perl2Exe
|