CLI options#
pperl accepts a small set of command-line flags. Most are perl-compatible;
a handful are pperl-specific (JIT, parallelism, runtime selection, bytecode
cache). The authoritative list is whatever pperl --help prints; the tables
below show those flags, extracted from the interpreter source and rendered
here on every documentation build.
Note
The actual pperl --help output on the terminal is always in English —
the binary does not localise help strings. Translated documentation
shows the same flags with descriptions in the page’s language so
readers can study what each flag does; flag tokens (-T, --pp,
--threads=N, …) are always verbatim.
PetaPerl - Next-generation Perl 5 runtime
Usage#
pperl [OPTIONS] [--] [SCRIPT [ARGS...]]
pperl -e 'code'
Perl-compatible options#
Flag |
Description |
|---|---|
|
Execute one-liner (modern features always enabled) |
|
Prepend directory to @INC |
|
Check syntax only, don’t execute |
|
Enable warnings |
|
Taint mode (forced; p5 runtime only — warns under –pp) |
|
Taint warnings (p5 runtime only — warns under –pp) |
|
Show version information |
|
Show detailed configuration |
|
Show this help message |
Pperl-specific options#
Flag |
Description |
|---|---|
|
Read op tree from stdin (B::PetaPerl JSON format) |
|
Read op tree from stdin (B::Concise format) |
|
Show performance statistics (time, memory, ops) |
|
Enable execution tracing (note: short -t is perl5 taint-warn) |
|
Set execution timeout in seconds (default: none) |
|
Dump canonical op tree (don’t execute) |
|
Compare op trees: perl5 backend vs native parser |
|
Enable bytecode caching (~/.pperl/cache/) |
|
Clear all bytecode caches and exit |
Runtime options#
Flag |
Description |
|---|---|
|
Use pp runtime (native Rust parser + interpreter) |
|
(default) Use p5 self-contained runtime |
|
Disable JIT compilation (on by default) |
|
Disable auto-parallelization (on by default) |
|
Number of threads (default: all CPUs) |
|
Minimum iterations to parallelize (default: 100) |
Examples#
pperl script.pl
Execute a Perl script
pperl -e 'say "Hello!"'
Execute a one-liner (say, state, etc. always available)
pperl -c script.pl
Check script syntax without executing
pperl script.pl arg1 arg2
Pass arguments to script (@ARGV)
For more information, see: https://gl.petatech.eu/petatech/peta-perl
Environment variables#
pperl sets several environment variables inside the process it runs, so scripts can introspect the running interpreter:
Variable |
Meaning |
|---|---|
|
Version string (same as |
|
Comma-separated list of compiled-in Cargo features |
|
Comma-separated |
|
Comma-separated runtimes built in ( |
|
Shell integration flavor (empty if |
|
|
Run pperl -V to see all values for the current binary.
When to use --pp#
The default p5 runtime is the full-feature interpreter: every module
available, JIT enabled, taint mode functional. --pp selects the
native-Rust pp runtime — faster to start, smaller binary, but with
a narrower module set and no JIT. Pick --pp for miniperl-style
deployments or when the specific module you need is available in it
(see the pp runtime badge on module pages).