Provided by: libpar-packer-perl_1.047-1build1_amd64 bug

NAME - Make and run Perl Archives


       (Please see pp for convenient ways to make self-contained executables, scripts or PAR
       archives from perl programs.)

       To make a PAR distribution from a CPAN module distribution:

           % -p                 # make a PAR dist under the current path
           % -p Foo-0.01        # assume unpacked CPAN dist in Foo-0.01/

       To manipulate a PAR distribution:

           % -i Foo-0.01-i386-freebsd-5.8.0.par # install
           % -i         # auto-appends archname + perlver
           % -i cpan://AUTRIJUS/PAR-0.74        # uses CPAN author directory
           % -u Foo-0.01-i386-freebsd-5.8.0.par # uninstall
           % -s Foo-0.01-i386-freebsd-5.8.0.par # sign
           % -v Foo-0.01-i386-freebsd-5.8.0.par # verify

       To use from ./foo.par:

           % -A./foo.par -MHello
           % -A./foo -MHello    # the .par part is optional

       Same thing, but search foo.par in the @INC;

           % -Ifoo.par -MHello
           % -Ifoo -MHello      # ditto

       Run or script/ from foo.par:

           % foo.par    # looks for '' by default,
                                       # otherwise run ''

       To make a self-containing script containing a PAR file :

           % -O./ foo.par
           % ./          # same as above

       To embed the necessary non-core modules and shared objects for PAR's execution (like
       "Zlib", "IO", "Cwd", etc), use the -b flag:

           % -b -O./ foo.par
           % ./          # runs anywhere with core modules installed

       If you also wish to embed core modules along, use the -B flag instead:

           % -B -O./ foo.par
           % ./          # runs anywhere with the perl interpreter

       This is particularly useful when making stand-alone binary executables; see pp for


       This stand-alone command offers roughly the same feature as "perl -MPAR", except that it
       takes the pre-loaded .par files via "-Afoo.par" instead of "-MPAR=foo.par".

       Additionally, it lets you convert a CPAN distribution to a PAR distribution, as well as
       manipulate such distributions.  For more information about PAR distributions, see

   Binary PAR loader (parl)
       If you have a C compiler, or a pre-built binary package of PAR is available for your
       platform, a binary version of will also be automatically installed as parl.  You
       can use it to run .par files:

           # runs script/ in archive, uses its lib/* as libraries
           % parl myapp.par     # runs or script/ in myapp.par
           % parl          # also runs normal perl scripts

       However, if the .par archive contains either or script/, it is used

           % parl myapp.par     # runs, with '' as @ARGV

       Finally, the "-O" option makes a stand-alone binary executable from a PAR file:

           % parl -B -Omyapp myapp.par
           % ./myapp                   # run it anywhere without perl binaries

       With the "--par-options" flag, generated binaries can act as "parl" to pack new binaries:

           % ./myapp --par-options -Omyap2 myapp.par   # identical to ./myapp
           % ./myapp --par-options -Omyap3 myap3.par   # now with different PAR

   Stand-alone executable format
       The format for the stand-alone executable is simply concatenating the following elements:

       ·   The executable itself

           Either in plain-text ( or native executable format (parl or parl.exe).

       ·   Any number of embedded files

           These are typically used for bootstrapping PAR's various XS dependencies.  Each
           section contains:

           The magic string ""FILE""
           Length of file name in "pack('N')" format plus 9
           8 bytes of hex-encoded CRC32 of file content
           A single slash (""/"")
           The file name (without path)
           File length in "pack('N')" format
           The file's content (not compressed)
       ·   One PAR file

           This is just a zip file beginning with the magic string ""PK\003\004"".

       ·   Ending section

           The pre-computed cache name.  A pack('Z40') string of the value of -T (--tempcache) or
           the hash of the file, followed by "\0CACHE".  The hash of the file is calculated with
           Digest::SHA, Digest::SHA1, or Digest::MD5.  If none of those modules is available, the
           "mtime" of the file is used.

           A pack('N') number of the total length of FILE and PAR sections, followed by a 8-bytes
           magic string: ""\\012"".


       PAR, PAR::Dist, parl, pp


       Audrey Tang <>, Steffen Mueller <>

       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 2002-2009 by Audrey Tang <>.

       Neither this program nor the associated parl program impose any licensing restrictions on
       files generated by their execution, in accordance with the 8th article of the Artistic

           "Aggregation of this Package with a commercial distribution is
           always permitted provided that the use of this Package is embedded;
           that is, when no overt attempt is made to make this Package's
           interfaces visible to the end user of the commercial distribution.
           Such use shall not be construed as a distribution of this Package."

       Therefore, you are absolutely free to place any license on the resulting executable, as
       long as the packed 3rd-party libraries are also available under the Artistic License.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

       See LICENSE.