PAR::Tutorial - Cross-Platform Packaging and Deployment with PAR


PAR::Tutorial - Cross-Platform Packaging and Deployment with PAR


This is a tutorial on PAR, first appeared at the 7th Perl Conference. The HTML version of this tutorial is available online as


On Deploying Perl Applications

 % -rootpw="Z1ON0101"
 Perl v5.6.1 required--this is only v5.6.0, stopped at line 1.
 BEGIN failed--compilation aborted at line 1.

PAR, the Perl Archive Toolkit

Simple Packaging

PAR Loaders

Dependency Scanning

Perl Packager: pp

How it works

Aggregating multiple programs

Cross-platform Packages

The Anatomy of a PAR file

Special files

Advantages over perlcc, PerlApp and Perl2exe

MANIFEST: Best viewed with Mozilla

META.yml: Metadata galore

SIGNATURE: Signing and verifying packages

Perl Servlets with Apache::PAR

Hon Dah, A-par-che!

On-demand library fetching

Code Obfuscation

Accessing packed files

Packing GUI applications

Precompiled CPAN distributions

Platform-specific Tips

Thank you!

Bonus Slides: PAR Internals

Overview of's Implementation

Code References in @INC

Source Filtering without Filter::* Modules

Source Filtering without Filter::* Modules (cont.)

Overriding DynaLoader::bootstrap

Anatomy of a Self-Contained PAR executable

Self-Bootstrapping Tricks

Thank you (again)!

SEE ALSO (English version) (Chinese version)

PAR, pp,, parl

the ex::lib::zip manpage, the Acme::use::strict::with::pride manpage

the App::Packer manpage, the Apache::PAR manpage, CPANPLUS, the Module::Install manpage


Audrey Tang <> is the official PAR website. 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 2003, 2004, 2005, 2006 by Audrey Tang <>.

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


 PAR::Tutorial - Cross-Platform Packaging and Deployment with PAR