Pod-Simple
view release on metacpan or search on metacpan
t/perlvar.pod view on Meta::CPAN
when being compiled, such as for example to AUTOLOAD at compile
time rather than normal, deferred loading. See L<perlcc>. Setting
C<$^C = 1> is similar to calling C<B::minus_c>.
=item $DEBUGGING
=item $^D
The current value of the debugging flags. (Mnemonic: value of B<-D>
switch.)
=item $SYSTEM_FD_MAX
=item $^F
The maximum system file descriptor, ordinarily 2. System file
descriptors are passed to exec()ed processes, while higher file
descriptors are not. Also, during an open(), system file descriptors are
preserved even if the open() fails. (Ordinary file descriptors are
closed before the open() is attempted.) The close-on-exec
status of a file descriptor will be decided according to the value of
C<$^F> when the corresponding file, pipe, or socket was opened, not the
time of the exec().
=item $^H
WARNING: This variable is strictly for internal use only. Its availability,
behavior, and contents are subject to change without notice.
This variable contains compile-time hints for the Perl interpreter. At the
end of compilation of a BLOCK the value of this variable is restored to the
value when the interpreter started to compile the BLOCK.
When perl begins to parse any block construct that provides a lexical scope
(e.g., eval body, required file, subroutine body, loop body, or conditional
block), the existing value of $^H is saved, but its value is left unchanged.
When the compilation of the block is completed, it regains the saved value.
Between the points where its value is saved and restored, code that
executes within BEGIN blocks is free to change the value of $^H.
This behavior provides the semantic of lexical scoping, and is used in,
for instance, the C<use strict> pragma.
The contents should be an integer; different bits of it are used for
different pragmatic flags. Here's an example:
sub add_100 { $^H |= 0x100 }
sub foo {
BEGIN { add_100() }
bar->baz($boon);
}
Consider what happens during execution of the BEGIN block. At this point
the BEGIN block has already been compiled, but the body of foo() is still
being compiled. The new value of $^H will therefore be visible only while
the body of foo() is being compiled.
Substitution of the above BEGIN block with:
BEGIN { require strict; strict->import('vars') }
demonstrates how C<use strict 'vars'> is implemented. Here's a conditional
version of the same lexical pragma:
BEGIN { require strict; strict->import('vars') if $condition }
=item %^H
WARNING: This variable is strictly for internal use only. Its availability,
behavior, and contents are subject to change without notice.
The %^H hash provides the same scoping semantic as $^H. This makes it
useful for implementation of lexically scoped pragmas.
=item $INPLACE_EDIT
=item $^I
The current value of the inplace-edit extension. Use C<undef> to disable
inplace editing. (Mnemonic: value of B<-i> switch.)
=item $^M
By default, running out of memory is an untrappable, fatal error.
However, if suitably built, Perl can use the contents of C<$^M>
as an emergency memory pool after die()ing. Suppose that your Perl
were compiled with -DPERL_EMERGENCY_SBRK and used Perl's malloc.
Then
$^M = 'a' x (1 << 16);
would allocate a 64K buffer for use in an emergency. See the
F<INSTALL> file in the Perl distribution for information on how to
enable this option. To discourage casual use of this advanced
feature, there is no L<English|English> long name for this variable.
=item $OSNAME
=item $^O
The name of the operating system under which this copy of Perl was
built, as determined during the configuration process. The value
is identical to C<$Config{'osname'}>. See also L<Config> and the
B<-V> command-line switch documented in L<perlrun>.
=item $PERLDB
=item $^P
The internal variable for debugging support. The meanings of the
various bits are subject to change, but currently indicate:
=over 6
=item 0x01
Debug subroutine enter/exit.
=item 0x02
Line-by-line debugging.
=item 0x04
Switch off optimizations.
( run in 1.887 second using v1.01-cache-2.11-cpan-d8267643d1d )