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 convenience variable which is typically used with SvPV when one doesn't care about the length of the string. It is usually more efficient to either declare a local variable and use that instead or to use the SvPV_nolen macro.
SvPV
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 utf8, copy and paste the appropriate command in to your terminal.
cpanm
cpanm utf8
CPAN shell
perl -MCPAN -e shell install utf8
For more information on module installation, please visit the detailed CPAN module installation guide.