Another way to create anonymous filehandles is with the Symbol
module or with the IO::Handle module and its ilk. These modules
have the advantage of not hiding different types of the same name
-during the local(). See the bottom of L<perlfunc/open()> for an
-example.
+during the local(). See the bottom of L<perlfunc/"open FILEHANDLE">
+for an example.
=head1 SEE ALSO
After the rc file is read, the debugger reads the PERLDB_OPTS
environment variable and uses it to set debugger options. The
contents of this variable are treated as if they were the argument
-of an C<o ...> debugger command (q.v. in L<perldebug/Options>).
+of an C<o ...> debugger command (q.v. in L<perldebug/"Configurable Options">).
=head3 Debugger Internal Variables
Level of verbosity. By default, the debugger leaves your exceptions
and warnings alone, because altering them can break correctly running
programs. It will attempt to print a message when uncaught INT, BUS, or
-SEGV signals arrive. (But see the mention of signals in L<BUGS> below.)
+SEGV signals arrive. (But see the mention of signals in L</BUGS> below.)
To disable this default safe mode, set these values to something higher
than 0. At a level of 1, you get backtraces upon receiving any kind
=item Lexing code attempted to stuff non-Latin-1 character into Latin-1 input
(F) An extension is attempting to insert text into the current parse
-(using L<lex_stuff_pvn_flags|perlapi/lex_stuff_pvn_flags> or similar), but tried to insert a character
+(using L<lex_stuff_pvn|perlapi/lex_stuff_pvn> or similar), but tried to insert a character
that couldn't be part of the current input. This is an inherent pitfall
of the stuffing mechanism, and one of the reasons to avoid it. Where it
is necessary to stuff, stuffing only plain ASCII is recommended.
Perl_warn(aTHX_ "%d bottles of beer on the wall", bottlecount);
-(See L<perlguts/Background and PERL_IMPLICIT_CONTEXT for the explanation
-of the C<aTHX_>.> ) Hiding the short forms is very useful for avoiding
+(See L<perlguts/"Background and PERL_IMPLICIT_CONTEXT"> for the explanation
+of the C<aTHX_>. ) Hiding the short forms is very useful for avoiding
all sorts of nasty (C preprocessor or otherwise) conflicts with other
software packages (Perl defines about 2400 APIs with these short names,
take or leave few hundred, so there certainly is room for conflict.)
If you want to override a predefined function, such as open(),
then you'll have to import the new definition from a different
-module. See L<perlsub/"Overriding Built-in Functions">. There's
-also an example in L<perltoot/"Class::Template">.
+module. See L<perlsub/"Overriding Built-in Functions">.
If you want to overload a Perl operator, such as C<+> or C<**>,
then you'll want to use the C<use overload> pragma, documented
=head2 How can I write expect in Perl?
-Once upon a time, there was a library called L<chat2.pl> (part of the
+Once upon a time, there was a library called F<chat2.pl> (part of the
standard perl distribution), which never really got finished. If you
find it somewhere, I<don't use it>. These days, your best bet is to
look at the Expect module available from CPAN, which also requires two
yourself if necessary.
Here's another strategy: Open a pipe to yourself, using C<open(MYSELF, "|-")>
-(see L<perlfunc/open()>) and always write() to MYSELF instead of STDOUT.
+(see L<perlfunc/"open FILEHANDLE">) and always write() to MYSELF instead of STDOUT.
Have your child process massage its STDIN to rearrange headers and footers
however you like. Not very convenient, but doable.
into C<$@> and the C<eval> is terminated with the undefined value.
If the exception is outside of all enclosing C<eval>s, then the uncaught
exception prints LIST to C<STDERR> and exits with a non-zero value. If you
-need to exit the process with a specific exit code, see L<exit>.
+need to exit the process with a specific exit code, see L</exit>.
Equivalent examples:
does its deed, by setting the C<$SIG{__DIE__}> hook. The associated
handler is called with the error text and can change the error
message, if it sees fit, by calling C<die> again. See
-L<perlvar/$SIG{expr}> for details on setting C<%SIG> entries, and
+L<perlvar/%SIG> for details on setting C<%SIG> entries, and
L<"eval BLOCK"> for some examples. Although this feature was
to be run only right before your program was to exit, this is not
currently so: the C<$SIG{__DIE__}> hook is currently called
eval `cat stat.pl`;
except that it's more efficient and concise, keeps track of the current
-filename for error messages, searches the @INC directories, and updates
-C<%INC> if the file is found. See L<perlvar/Predefined Names> for these
-variables. It also differs in that code evaluated with C<do FILENAME>
+filename for error messages, searches the C<@INC> directories, and updates
+C<%INC> if the file is found. See L<perlvar/@INC> and L<perlvar/%INC> for
+these variables. It also differs in that code evaluated with C<do FILENAME>
cannot see lexicals in the enclosing scope; C<eval STRING> does. It's the
same, however, in that it does reparse the file every time you call it,
so you probably don't want to do this inside a loop.
=item Otherwise, If EXPR has the UTF8 flag set
If the current package has a subroutine named C<ToLower>, it will be used to
-change the case (See L<perlunicode/User-Defined Case Mappings>.)
+change the case
+(See L<perlunicode/"User-Defined Case Mappings (for serious hackers only)">.)
Otherwise Unicode semantics are used for the case change.
=item Otherwise, if C<use locale> is in effect
See L<perlipc/"Using open() for IPC"> for more examples of this.
(You are not allowed to C<open> to a command that pipes both in I<and>
out, but see L<IPC::Open2>, L<IPC::Open3>, and
-L<perlipc/"Bidirectional Communication"> for alternatives.)
+L<perlipc/"Bidirectional Communication with Another Process"> for
+alternatives.)
In the form of pipe opens taking three or more arguments, if LIST is specified
(extra arguments after the command name) then LIST becomes arguments
IO buffering, so you may need to set C<$|> to flush your WRITEHANDLE
after each command, depending on the application.
-See L<IPC::Open2>, L<IPC::Open3>, and L<perlipc/"Bidirectional Communication">
+See L<IPC::Open2>, L<IPC::Open3>, and
+L<perlipc/"Bidirectional Communication with Another Process">
for examples of such things.
On systems that support a close-on-exec flag on files, that flag is set
file.
The position in the file of FILEHANDLE is left unchanged. You may want to
-call L<seek> before writing to the file.
+call L<seek|/"seek FILEHANDLE,POSITION,WHENCE"> before writing to the file.
=item uc EXPR
X<uc> X<uppercase> X<toupper>
same values, as long as the pattern was the last successful match of
the current dynamic scope. C<\g{-1}> can be used to refer to a group by
relative rather than absolute position; and groups can be also be named, and
-referred to later by name rather than number. See L<perlre/Capture Buffers>.
+referred to later by name rather than number. See L<perlre/"Capture groups">.
=item backtracking
=item (to be) dropped modules
-When Perl 5 was first released (see L<perlhistory>), several modules were
+When Perl 5 was first released (see L<perlhist>), several modules were
included, which have now fallen out of common use. It has been suggested
that these modules should be removed, since the distribution became rather
large, and the common criterion for new module additions is now limited to
A program technique that lets you evaluate an L</expression> and then,
based on the value of the expression, do a multiway branch to the
appropriate piece of code for that value. Also called a "case
-structure", named after the similar Pascal construct. Most switch
-statements in Perl are spelled C<for>. See L<perlsyn/Basic BLOCKs and
-Switch Statements>.
+structure", named after the similar Pascal construct. See
+L<perlsyn/"Switch statements">.
=item symbol
To turn one string representation into another by mapping each
character of the source string to its corresponding character in the
result string. See
-L<perlop/trE<sol>SEARCHLISTE<sol>REPLACEMENTLISTE<sol>cds>.
+L<perlop/trE<sol>SEARCHLISTE<sol>REPLACEMENTLISTE<sol>cdsr>.
=item trigger
...
}
-See L<perlguts/Localising Changes> for how to use the save stack.
+See L<perlguts/"Localizing Changes"> for how to use the save stack.
=head1 MILLIONS OF MACROS
However, in the case you are using C<LANGUAGE>: it affects the
language of informational, warning, and error messages output by
commands (in other words, it's like C<LC_MESSAGES>) but it has higher
-priority than L<LC_ALL>. Moreover, it's not a single value but
+priority than C<LC_ALL>. Moreover, it's not a single value but
instead a "path" (":"-separated list) of I<languages> (not locales).
See the GNU C<gettext> library documentation for more information.
to use leading underscore to indicate private variables and method names.
However, variables and functions named with a single C<_>, such as
$_ and C<sub _>, are still forced into the package C<main>. See also
-L<perlvar/"Technical Note on the Syntax of Variable Names">.
+L<perlvar/"The Syntax of Variable Names">.
C<eval>ed strings are compiled in the package in which the eval() was
compiled. (Assignments to C<$SIG{}>, however, assume the signal
is greater than 0. You can test the higher levels of global destruction
by setting the PERL_DESTRUCT_LEVEL environment variable, presuming
C<-DDEBUGGING> was enabled during perl build time.
-See L<perlhack/PERL_DESTRUCT_LEVEL> for more information.
+See L<perlhacktips/PERL_DESTRUCT_LEVEL> for more information.
A more complete garbage collection strategy will be implemented
at a future date.
differences in the actual times recorded might be in the algorithm used
internally, or it could be due to system resource limitations or contention.
-See also the L<DBIx::Profiler> which will profile database queries running
+See also the L<DBIx::Profile> which will profile database queries running
under the C<DBIx::*> namespace.
=head2 Devel::NYTProf
Apache::DProf
Apache::SmallProf
Benchmark
- DBIx::Profiler
+ DBIx::Profile
Devel::AutoProfiler
Devel::DProf
Devel::DProfLB
=item *
-F<README.vms> (installed as L<README_vms>), L<perlvms>
+F<README.vms> (installed as F<README_vms>), L<perlvms>
=item *
A powerful tool for optimizing such beasts is what is known as an
"independent group",
-which does not backtrack (see L<C<< (?>pattern) >>>). Note also that
+which does not backtrack (see L</C<< (?>pattern) >>>). Note also that
zero-length look-ahead/look-behind assertions will not backtrack to make
the tail match, since they are in "logical" context: only
whether they match is considered relevant. For an example
where side-effects of look-ahead I<might> have influenced the
-following match, see L<C<< (?>pattern) >>>.
+following match, see L</C<< (?>pattern) >>>.
=head2 Version 8 Regular Expressions
X<regular expression, version 8> X<regex, version 8> X<regexp, version 8>
Set if C<use locale> is in effect. If present in C<< rx->extflags >>
C<split> will use the locale dependent definition of whitespace under
when RXf_SKIPWHITE or RXf_WHITE are in effect. Under ASCII whitespace
-is defined as per L<isSPACE|perlapi/ISSPACE>, and by the internal
+is defined as per L<isSPACE|perlapi/isSPACE>, and by the internal
macros C<is_utf8_space> under UTF-8 and C<isSPACE_LC> under C<use
locale>.
Thus a warning on the 2nd line of the program (which is on the 100th
line in the file) will be reported as line 2, and not as line 100.
This can be overridden by using the #line directive.
-(See L<perlsyn/"Plain-Old-Comments-(Not!)">)
+(See L<perlsyn/"Plain Old Comments (Not!)">)
If a directory name is specified, Perl will switch to that directory
before running the program. The B<-x> switch controls only the
Relevant only if your perl executable was built with B<-DDEBUGGING>,
this controls the behavior of global destruction of objects and other
-references. See L<perlhack/PERL_DESTRUCT_LEVEL> for more information.
+references. See L<perlhacktips/PERL_DESTRUCT_LEVEL> for more information.
=item PERL_DL_NONLAZY
X<PERL_DL_NONLAZY>
the scope of $answer extends from its declaration through the rest
of that conditional, including any C<elsif> and C<else> clauses,
-but not beyond it. See L<perlsyn/"Simple statements"> for information
+but not beyond it. See L<perlsyn/"Simple Statements"> for information
on the scope of variables in statements with modifiers.
The C<foreach> loop defaults to scoping its index variable dynamically
=head2 Migrate t/ from custom TAP generation
Many tests below F<t/> still generate TAP by "hand", rather than using library
-functions. As explained in L<perlhack/Writing a test>, tests in F<t/> are
+functions. As explained in L<perlhack/TESTING>, tests in F<t/> are
written in a particular way to test that more complex constructions actually
work before using them routinely. Hence they don't use C<Test::More>, but
instead there is an intentionally simpler library, F<t/test.pl>. However,
C<$^A>. After calling its format, C<write()> prints out the contents
of C<$^A> and empties. So you never really see the contents of C<$^A>
unless you call C<formline()> yourself and then look at it. See
-L<perlform> and L<perlfunc/formline()>.
+L<perlform> and L<perlfunc/"formline PICTURE,LIST">.
=item HANDLE->format_formfeed(EXPR)
there is no difference between "user time" and "system" time
under VMS, and the time accumulated by a subprocess may or may
not appear separately in the "child time" field, depending on
-whether L<times> keeps track of subprocesses separately. Note
+whether C<times()> keeps track of subprocesses separately. Note
especially that the VAXCRTL (at least) keeps track only of
-subprocesses spawned using L<fork> and L<exec>; it will not
-accumulate the times of subprocesses spawned via pipes, L<system>,
+subprocesses spawned using C<fork()> and C<exec()>; it will not
+accumulate the times of subprocesses spawned via pipes, C<system()>,
or backticks.
=item unlink LIST