Skip to content
(perl) Generate stand-alone executables, perl scripts and PAR files
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib prepare for release Apr 29, 2019
lib Fix RT#130685: core module detection doesn't work with -Duserelocatab… Oct 11, 2019
myldr relax check for shared libs detected by ldd from -r to -e May 21, 2019
package Introduce branches/tags/trunk to PAR::Packer. Hopefully without a dis… Jan 17, 2007
script Replace // operator with || to make run on ancient Perl 5.8.9 Oct 14, 2019
t Test t/90-rt130685.t may fail if the user has a dual-life List::Util … Oct 14, 2019
.gitignore put MANIFEST under version control and fine-tune ignore patterns Sep 28, 2017
AUTHORS Add an AUTHORS file which explains that the PAR/PAR-Packer AUTHORS fi… Jan 17, 2007
Changes update Changes May 31, 2019
LICENSE add back Perl_5 LICENSE Oct 1, 2016
MANIFEST Fix RT#130685: core module detection doesn't work with -Duserelocatab… Oct 11, 2019
MANIFEST.SKIP Fix #12 sha1.c warnings due to inconsistent USE_64_BIT_INT Mar 2, 2019
Makefile.PL Fix #129312: Code signing for OSX May 19, 2019


This is the README file for PAR-Packer, a part of the PAR toolkit.
PAR-Packer is the PAR component that can generate stand-alone executables
and ".par" archives.

The main front-end for PAR-Packer is the "pp" utility.

Please type "perldoc PAR::FAQ" for frequently answered questions.

For packing scripts with prerequisite modules into stand-alone scripts
or executables (aka PerlApp, Perl2exe, or 'perlcc that works'), see
"perldoc pp" and "perldoc tkpp".

For running ".par" files directly, see "perldoc parl".

To generate/execute self-contained perl scripts, see "perldoc pp"
or "perldoc".

An extensive "Cross-Platform Packaging and Deployment with PAR" tutorial
is available as "perldoc PAR::Tutorial" from the PAR distribution which is
a prerequisite for this distribution.

* Installation

If you have cpanm, you only need one line:

  cpanm PAR::Packer

Alternatively, if your CPAN shell is set up, you should just be able to do:

  cpan PAR:Packer

As a last resort, you can manually install it. Download the tarball, untar it,
then build it:
  perl Makefile.PL
  make test
  make install

Note that all of the above require that you have a C compiler installed.

* Notes for Windows users

If your Perl distribution is Strawberry Perl, you already have the
MinGW C compiler installed. If you are using ActiveState Perl, 
you may want to install the MinGW C compiler with:

  ppm install MinGW

* Typical Usage

Here are some recipes showing how to utilize pp to bundle with
all its dependencies, on target machines with different expected

- Stand-alone setup

    % pp -o packed.exe	# makes packed.exe
    # Now, deploy 'packed.exe' to target machine...
    $ packed.exe			# run it

- Perl interpreter only, without core modules:

    % pp -B -p		# makes source.par
    % -B source.par  # makes
    # Now, deploy '' to target machine...
    $ perl			# run it

- Perl with core module installed:

    % pp -p			# makes source.par
    % -b source.par	# makes
    # Now, deploy '' to target machine...
    $ perl			# run it

- Perl with and its dependencies installed:

    % pp -p                   # makes source.par
    % echo "use PAR 'source.par';" >;
    % cat >>;       # makes
    # Now, deploy 'source.par' and '' to target machine...
    $ perl                    # run it

Note that if your perl was built with a shared library, the
'Stand-alone setup' above will still need a separate perl5x.dll or to function correctly.  Patches to include a copy
of libperl with the executable are most welcome. (Note: This might not
apply any more.)

Please consult the documentation of 'pp' for more information.

* Contact

You can write to the mailing list at <>, or send an empty mail to
<> to participate in the discussion.

Please submit bug reports to <>.

* Copyright

Copyright 2002-2010 by Audrey Tang <>.

All rights reserved.  You can redistribute and/or modify
this bundle under the same terms as Perl itself.

You can’t perform that action at this time.