++ed by:

1 PAUSE user

Alexandra Hrefna Hilmisdóttir


ppk-deptool - Perl Packager dependency tool


    ~$ ppk-deptool list-targets

    ~$ ppk-deptool list-target-deps some-program

    ~$ ppk-deptool fetch-dist Some-Module-0.0.tar.gz

    ~$ ppk-deptool fetch-dist --deps-for some-program


ppk-deptool provides support for managing dependencies for self-contained programs in a manner that aids in the creation of a Makefile for easy building. ppk-deptool is able to reference a PROG.INDEX, as well as a DIST.INDEX file, which are used to represent lists of programs and their Perl package depenencies, as well as how to fetch said dependencies from a remote source.



Open the PROG.INDEX file in the current directory and list all build targets therein, one per line.

list-target-deps target

Given a target listed in PROG.INDEX, list all the Perl package dependencies needed to build that target.

fetch-dist dist

Given a Perl package distribution listed in DIST.INDEX, fetch the Perl package distribution and place it in the current working directory.

fetch-dist --deps-for target

Given a target listed in PROG.INDEX, fetch all dependencies from each source listed in DIST.INDEX.


The PROG.INDEX file is a flat file formatted in the following manner.

    program-a: Some-Dep-0.1.tar.gz Another-Dep-1.0.tar.gz
    program-b: Some-Dep-0.1.tar.gz Acme-Eyebleach-1.0.tar.gz

Lines can consist solely of whitespace, or begin with a hash (#) to begin a comment. Any number of whitespace-delimited distribution names can be listed as dependencies for a target program. Dependencies should have a corresponding definition in DIST.INDEX.


The DIST.INDEX file is a flat file which lists all available Perl package distribution dependencies for a project, as well as a single URI from which each may be obtained. Entries may be listed as such:

    # Tarball via HTTP
    Another-Dep-1.0.tar.gz: http://foo.bar/baz/Another-Dep-1.0.tar.gz

    # Tarball via HTTP via CPAN
    Acme-Eyebleach-1.0.tar.gz: cpan://SOMEBODY/Acme-Eyebleach-1.0.tar.gz

    # Repository via git
    Yet-Another-1.0: git://foo.bar/baz/Yet-Another

Empty lines containing only whitespace, or beginning with any amount of whitespace, or none at all, followed by a hash (#) to denote a comment, are permitted.


Copyright (c) 2018, cPanel, Inc. All rights reserved. This is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic for further details.