++ed by:
1 non-PAUSE user
Author image Steffen Müller
and 1 contributors


PAR::Dist::FromPPD - Create PAR distributions from PPD/PPM packages


  use PAR::Dist::FromPPD;
  # Creates a .par distribution of the PAR module in the
  # current directory based on the PAR.ppd file from the excellent
  # bribes.org PPM repository.
  ppd_to_par(uri => 'http://www.bribes.org/perl/ppm/PAR.ppd');

  # You could download the .ppd and .tar.gz files first and then do:
  ppd_to_par(uri => 'PAR.ppd', verbose => 1);


This module creates PAR distributions from PPD XML documents which are used by ActiveState's "Perl Package Manager", short PPM.

It parses the PPD document to extract the required information and then uses PAR::Dist to create a .par archive from it.

Please note that this code works for me but hasn't been tested to full extent.


By default, the ppd_to_par subroutine is exported to the callers namespace. get_ppd_content will be exported on demand.


This is a list of all public subroutines in the module.


The only mandatory parameter is an URI for the PPD file to parse.


  uri         => 'ftp://foo/bar' or 'file:///home/you/file.ppd', ...
  out         => 'directory'  (write distribution files to this directory)
  verbose     => 1/0 (verbose mode on/off)
  distname    => Override the distribution name
  distversion => Override the distribution version
  perlversion => Override the distribution's (minimum?) perl version
  arch        => Override the distribution's target architecture
  selectarch  => Regular Expression.
  selectperl  => Regular Expression.

arch may also be set to any_arch and perlversion may be set to any_version.

If a regular expression is specified using selectarch, that expression is matched against the architecture settings of each implementation. The first matching implementation is chosen. If none matches, the implementations are tried in order of appearance. Of course, this heuristic is applied before any architecture overriding via the arch parameter is carried out.

selectperl works the same as selectarch, but operates on the (minimum) perl version of an implementation. If both selectperl and selectarch are present, selectperl operates on the implementations matched by selectarch. That means selectarch takes precedence.


First argument must be an URI string for the PPD. (Supported are file:// URIs and whatever LWP supports.)

Fetches the PPD file and returns its contents as a string.

die()s on error.


The PAR::Dist module is used to create .par distributions from an unpacked CPAN distribution. The CPAN module is used to fetch the distributions from the CPAN.

PAR has a mailing list, <par@perl.org>, that you can write to; send an empty mail to <par-subscribe@perl.org> to join the list and participate in the discussion.

Please send bug reports to <bug-par-dist-fromppd@rt.cpan.org>.

The official PAR website may be of help, too: http://par.perl.org

For details on the Perl Package Manager, please refer to ActiveState's website at http://activestate.com.


Steffen Mueller, <smueller at cpan dot org>


Copyright (C) 2006 by Steffen Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6 or, at your option, any later version of Perl 5 you may have available.