Perl::Dist::Asset::PAR - "Binary .par package" asset for a Win32 Perl


  my $binary = Perl::Dist::Asset::PAR->new(
      name       => 'dmake',
  # Or usually more like this:
    name => 'Perl-Dist-PrepackagedPAR-libexpat',
    url  => '',


Perl::Dist::Asset::PAR is a data class that provides encapsulation and error checking for a "binary .par package" to be installed in a Perl::Dist-based Perl distribution.

It is normally created on the fly by the Perl::Dist::Inno install_par method (and other things that call it). The install_par routine is currently implemented in this file and monkey-patched into Perl::Dist::Inno namespace. This will hopefully change in future.

The specification of the location to retrieve the package is done via the standard mechanism implemented in Perl::Dist::Asset.

The install_to argument of the Perl::Dist::Asset::Library Perl::Dist asset is nto currently supported by the PAR asset. See "PAR FILE FORMAT EXTENSIONS" below for details on how non-Perl binaries are installed.


This class inherits from Perl::Dist::Asset and shares its API.


The new constructor takes a series of parameters, validates then and returns a new Perl::Dist::Asset::PAR object.

It inherits all the params described in the Perl::Dist::Asset new method documentation, and adds some additional params.


The required name param is the logical (arbitrary) name of the package for the purposes of identification. A sensible default would be the name of the primary Perl module in the package.

The new constructor returns a Perl::Dist::Asset::PAR object, or throws an exception (dies) if an invalid param is provided.


This concerns packagers of .par binaries only. A .par usually mostly contains the blib/ directory after making a Perl module. For use with Perl::Dist::Asset::PAR, there are currently three more subdirectories which will be installed:

 blib/c/lib     => goes into the c/lib library directory for non-Perl extensions
 blib/c/bin     => goes into the c/bin executable/dll directory for non-Perl extensions
 blib/c/include => goes into the c/include header directory for non-Perl extensions
 blib/c/share   => goes into the c/share share directory for non-Perl extensions


Bugs should be reported via the CPAN bug tracker at

For other issues, contact the author.


Steffen Mueller <>


Perl::Dist, Perl::Dist::Inno, Perl::Dist::Asset


Copyright 2008 Steffen Mueller, borrowing heavily from Adam Kennedy's code.

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

The full text of the license can be found in the LICENSE file included with this module.