The C variable that roughly corresponds to Perl's $^W warning variable. However, $^W is treated as a boolean, whereas PL_dowarn is a collection of flag bits.
$^W
PL_dowarn
On threaded perls, each thread has an independent copy of this variable; each initialized at creation time with the current value of the creating thread's copy.
The GV representing *_. Useful for access to $_.
*_
$_
The stash for the package code will be compiled into.
The currently active COP (control op) roughly representing the current statement in the source.
A scratch pad SV for whatever temporary use you need. Chiefly used as a fallback by macros on platforms where "PERL_USE_GCC_BRACE_GROUPS" in perlapi> is unavailable, and which would otherwise evaluate their SV parameter more than once.
A scratch pad variable in which to store a STRLEN value. If would have been better named something like PL_temp_strlen.
STRLEN
PL_temp_strlen
It is is typically used with SvPV when one is actually planning to discard the returned length, (hence the length is "Not Applicable", which is how this variable got its name).
SvPV
It is usually more efficient to either declare a local variable and use that instead, or to use the SvPV_nolen macro.
SvPV_nolen
The input record separator - $/ in Perl space.
$/
The GV which was last used for a filehandle input operation. (<FH>)
<FH>
The glob containing the output field separator - *, in Perl space.
*,
Contains flags controlling perl's behaviour on exit():
PERL_EXIT_DESTRUCT_END
If set, END blocks are executed when the interpreter is destroyed. This is normally set by perl itself after the interpreter is constructed.
PERL_EXIT_ABORT
Call abort() on exit. This is used internally by perl itself to abort if exit is called while processing exit.
abort()
PERL_EXIT_WARN
Warn on exit.
PERL_EXIT_EXPECTED
Set by the "exit" in perlfunc operator.
Pointer to the per-subroutine peephole optimiser. This is a function that gets called at the end of compilation of a Perl subroutine (or equivalently independent piece of Perl code) to perform fixups of some ops and to perform small-scale optimisations. The function is called once for each subroutine that is compiled, and is passed, as sole parameter, a pointer to the op that is the entry point to the subroutine. It modifies the op tree in place.
The peephole optimiser should never be completely replaced. Rather, add code to it by wrapping the existing optimiser. The basic way to do this can be seen in "Compile pass 3: peephole optimization" in perlguts. If the new code wishes to operate on ops throughout the subroutine's structure, rather than just at the top level, it is likely to be more convenient to wrap the "PL_rpeepp" hook.
Pointer to the recursive peephole optimiser. This is a function that gets called at the end of compilation of a Perl subroutine (or equivalently independent piece of Perl code) to perform fixups of some ops and to perform small-scale optimisations. The function is called once for each chain of ops linked through their op_next fields; it is recursively called to handle each side chain. It is passed, as sole parameter, a pointer to the op that is at the head of the chain. It modifies the op tree in place.
op_next
The peephole optimiser should never be completely replaced. Rather, add code to it by wrapping the existing optimiser. The basic way to do this can be seen in "Compile pass 3: peephole optimization" in perlguts. If the new code wishes to operate only on ops at a subroutine's top level, rather than throughout the structure, it is likely to be more convenient to wrap the "PL_peepp" hook.
When non-NULL, the function pointed by this variable will be called each time an OP is freed with the corresponding OP as the argument. This allows extensions to free any extra attribute they have locally attached to an OP. It is also assured to first fire for the parent OP and then for its kids.
NULL
When you replace this variable, it is considered a good practice to store the possibly previously installed hook and that you recall it inside your own.
PL_modglobal is a general purpose, interpreter global HV for use by extensions that need to keep information on a per-interpreter basis. In a pinch, it can also be used as a symbol table for extensions to share data among each other. It is a good idea to use keys prefixed by the package name of the extension that owns the data.
PL_modglobal
This value may be set when embedding for full cleanup.
Possible values:
0 - none
1 - full
2 or greater - full with checks.
If $ENV{PERL_DESTRUCT_LEVEL} is set to an integer greater than the value of PL_perl_destruct_level its value is used instead.
$ENV{PERL_DESTRUCT_LEVEL}
PL_perl_destruct_level
To install less, copy and paste the appropriate command in to your terminal.
cpanm
cpanm less
CPAN shell
perl -MCPAN -e shell install less
For more information on module installation, please visit the detailed CPAN module installation guide.