There are several approaches to producing self-contained executable packages from Perl programs.
- ActiveState offers their Perl Dev Kit (PDK), which contains a tool called PerlApp. Using the PerlApp GUI tool, any set of Perl scripts can be "compiled" into a single distributable Windows EXE file. This is a commercial solution.
- Perl2EXE is a command-line tool with a similar goal as PerlApp above. There are "lite" (gratis) and "pro" (commercial) versions available with varying feature-sets.
- PAR is a cross-platform packager. The included pp utility is capable of creating perl packages in Windows EXE and Linux binary formats. (Possibly OSX as well? Untested...). However, PAR can also be used to distribute packages that require only a basic Perl distribution and the PAR runtime parl. These are not executables, but work similar to Java's JAR files.
There are additional ways to accomplish the core goal of distributable packages, but the above are the recommended, well-tested methods.
At some point in the future, Parrot may provide functionality to create reusable libraries, executables, and/or packages from Perl programs. Keep an eye on its development.