NAME

ppk - Perl Packager

SYNOPSIS

~$ ppk main.pl --dists Filesys-POSIX/ -o script
~$ ppk main.pl --dists Filesys-POSIX-0.9.tar.gz -o script
~$ ppk main.pl --modules lib/Foo/Bar.pm=Foo::Bar -o script
~$ ppk main.pl --dists Filesys-POSIX/ -c

DESCRIPTION

ppk provides a means of packaging a main Perl script, along with any number of dependencies in the form of modules explicitly specified by path and their equivalent Perl names; or, entire Perl dists in the form of tarballs or paths to unarchived dists, which contain a MANIFEST in either case.

ARGUMENTS

RATIONALE

This tool does NOT perform automatic dependency calculation in the form of either runtime or static analysis; rather, by design, it is meant to allow for the granular selection of dependencies to target specific environments, creating standalone Perl scripts in the smallest footprint feasible.

MECHANISM

The standalone scripts generated by ppk are composed of a standard bootstrapping wrapper, and a __DATA__ section containing the main entry point script, and all dependencies, in a base64-encoded tarball created by tar(1) and gzip(1). The Perl interpreter used to execute the standalone script will be used to execute the main entry point script, passing all arguments from the standalone script's @ARGV array directly to the main entry point script.

Upon initial execution of a generated standalone script, the main entry point script, as well as its dependencies, are extracted into a temporary directory that is to be removed upon natural or forced program termination.

COPYRIGHT

Copyright (c) 2018, cPanel, L.L.C. 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.