(A) An alien error message (not generated by Perl).
Optional warnings are enabled by using the B<-w> switch. Warnings may
-be captured by setting C<$^Q> to a reference to a routine that will be
+be captured by setting C<$SIG{__WARN__}> to a reference to a routine that will be
called on each warning instead of printing it. See L<perlvar>.
Trappable errors may be trapped using the eval operator. See
L<perlfunc/eval>.
(S) A lexical variable has been redeclared in the same scope, effectively
eliminating all access to the previous instance. This is almost always
-a typographical error. Note that the earlier variable will still exist
+a typographical error. Note that the earlier variable will still exist
until the end of the scope or until all closure referents to it are
destroyed.
=item %s (...) interpreted as function
(W) You've run afoul of the rule that says that any list operator followed
-by parentheses turns into a function, with all the list operators arguments
+by parentheses turns into a function, with all the list operators arguments
found inside the parens. See L<perlop/Terms and List Operators (Leftward)>.
=item %s argument is not a HASH element
=item %s: Command not found.
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item %s: Expression syntax.
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item %s: Undefined variable.
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item %s: not found
-(A) You've accidentally run your script through the Bourne shell
-instead of Perl. Check the <#!> line, or manually feed your script
+(A) You've accidentally run your script through the Bourne shell
+instead of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item B<-P> not allowed for setuid/setgid script
=item Attempt to use reference as lvalue in substr
(W) You supplied a reference as the first argument to substr() used
-as an lvalue, which is pretty strange. Perhaps you forgot to
+as an lvalue, which is pretty strange. Perhaps you forgot to
dereference it first. See L<perlfunc/substr>.
=item Bad arg length for %s, is %d, should be %d
(P) An internal request asked to add a hash entry to something that
wasn't a symbol table entry.
-=item Badly places ()'s
+=item Badly placed ()'s
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item BEGIN failed--compilation aborted
from a deleted (but still opened) file. You have to say B<-i>C<.bak>, or some
such.
-=item Can't do inplace edit: %s > 14 characters
+=item Can't do inplace edit: %s E<gt> 14 characters
(S) There isn't enough room in the filename to make a backup name for the file.
(F) This machine doesn't have either waitpid() or wait4(), so only waitpid()
without flags is emulated.
-=item Can't do {n,m} with n > m
+=item Can't do {n,m} with n E<gt> m
(F) Minima must be less than or equal to maxima. If you really want
your regexp to match something 0 times, just put {0}. See L<perlre>.
(W) You tried to say C<open(CMD, "|cmd|")>, which is not supported. You can
try any of several modules in the Perl library to do this, such as
-"open2.pl". Alternately, direct the pipe's output to a file using ">",
+"open2.pl". Alternately, direct the pipe's output to a file using "E<gt>",
and then read it in under a different file handle.
=item Can't open error file %s as stderr
(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '2>' or '2>>' on the command line for
-writing.
+couldn't open the file specified after '2E<gt>' or '2E<gt>E<gt>' on the
+command line for writing.
=item Can't open input file %s as stdin
(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '<' on the command line for reading.
+couldn't open the file specified after 'E<lt>' on the command line for reading.
=item Can't open output file %s as stdout
(F) An error peculiar to VMS. Perl does its own command line redirection, and
-couldn't open the file specified after '>' or '>>' on the command line for
-writing.
+couldn't open the file specified after 'E<gt>' or 'E<gt>E<gt>' on the command
+line for writing.
=item Can't open output pipe (name: %s)
=item Can't use "my %s" in sort comparison
(F) The global variables $a and $b are reserved for sort comparisons.
-You mentioned $a or $b in the same line as the <=> or cmp operator,
+You mentioned $a or $b in the same line as the E<lt>=E<gt> or cmp operator,
and the variable had earlier been declared as a lexical variable.
Either qualify the sort variable with the package name, or rename the
lexical variable.
=item Cannot open temporary file
-(F) The create routine failed for some reaon while trying to process
+(F) The create routine failed for some reason while trying to process
a B<-e> switch. Maybe your /tmp partition is full, or clobbered.
=item chmod: mode argument is missing initial 0
not realizing that 777 will be interpreted as a decimal number, equivalent
to 01411. Octal constants are introduced with a leading 0 in Perl, as in C.
-=item Close on unopened file <%s>
+=item Close on unopened file E<lt>%sE<gt>
(W) You tried to close a filehandle that was never opened.
=item Exiting eval via %s
-(W) You are exiting an eval by unconventional means, such as a
+(W) You are exiting an eval by unconventional means, such as
a goto, or a loop control statement.
=item Exiting subroutine via %s
-(W) You are exiting a subroutine by unconventional means, such as a
+(W) You are exiting a subroutine by unconventional means, such as
a goto, or a loop control statement.
=item Exiting substitution via %s
-(W) You are exiting a substitution by unconventional means, such as a
+(W) You are exiting a substitution by unconventional means, such as
a return, a goto, or a loop control statement.
=item Fatal VMS error at %s, line %d
(W) You tried to write on a read-only filehandle. If you
intended it to be a read-write filehandle, you needed to open it with
-"+<" or "+>" or "+>>" instead of with "<" or nothing. If you only
-intended to write the file, use ">" or ">>". See L<perlfunc/open>.
+"+E<lt>" or "+E<gt>" or "+E<gt>E<gt>" instead of with "E<lt>" or nothing. If
+you only intended to write the file, use "E<gt>" or "E<gt>E<gt>". See
+L<perlfunc/open>.
=item Filehandle only opened for input
(W) You tried to write on a read-only filehandle. If you
intended it to be a read-write filehandle, you needed to open it with
-"+<" or "+>" or "+>>" instead of with "<" or nothing. If you only
-intended to write the file, use ">" or ">>". See L<perlfunc/open>.
+"+E<lt>" or "+E<gt>" or "+E<gt>E<gt>" instead of with "E<lt>" or nothing. If
+you only intended to write the file, use "E<gt>" or "E<gt>E<gt>". See
+L<perlfunc/open>.
=item Final $ should be \$ or $name
(D) Really old Perl let you omit the % on hash names in some spots. This
is now heavily deprecated.
-=item Name "%s::%s" used only once: possible typo
+=item Ill-formed logical name |%s| in prime_env_iter
-(W) Typographical errors often show up as unique variable names. If you
-had a good reason for having a unique name, then just mention it
-again somehow to suppress the message (the C<use vars> pragma is
-provided for just this purpose).
+(W) A warning peculiar to VMS. A logical name was encountered when preparing
+to iterate over %ENV which violates the syntactic rules governing logical
+names. Since it cannot be translated normally, it is skipped, and will not
+appear in %ENV. This may be a benign occurence, as some software packages
+might directly modify logical name tables and introduce non-standard names,
+or it may indicate that a logical name table has been corrupted.
=item Illegal division by zero
=item Insecure dependency in %s
-(F) You tried to do something that the tainting mechanism didn't like.
+(F) You tried to do something that the tainting mechanism didn't like.
The tainting mechanism is turned on when you're running setuid or setgid,
or when you specify B<-T> to turn it on explicitly. The tainting mechanism
labels all data that's derived directly or indirectly from the user,
=item Insecure directory in %s
(F) You can't use system(), exec(), or a piped open in a setuid or setgid
-script if $ENV{PATH} contains a directory that is writable by the world.
+script if C<$ENV{PATH}> contains a directory that is writable by the world.
See L<perlsec>.
=item Insecure PATH
(F) You can't use system(), exec(), or a piped open in a setuid or
-setgid script if $ENV{PATH} is derived from data supplied (or
+setgid script if C<$ENV{PATH}> is derived from data supplied (or
potentially supplied) by the user. The script must set the path to a
known value, using trustworthy data. See L<perlsec>.
=item Method for operation %s not found in package %s during blessing
(F) An attempt was made to specify an entry in an overloading table that
-doesn't somehow point to a valid method. See L<perlovl>.
+doesn't somehow point to a valid method. See L<overload>.
=item Might be a runaway multi-line %s string starting on line %d
=item Missing $ on loop variable
-(F) Apparently you've been programming in csh too much. Variables are always
-mentioned with the $ in Perl, unlike in the shells, where it can vary from
+(F) Apparently you've been programming in B<csh> too much. Variables are always
+mentioned with the $ in Perl, unlike in the shells, where it can vary from
one line to the next.
=item Missing comma after first argument to %s function
=item Multidimensional syntax %s not supported
-(W) Multidimensional arrays aren't written like $foo[1,2,3]. They're written
-like $foo[1][2][3], as in C.
+(W) Multidimensional arrays aren't written like C<$foo[1,2,3]>. They're written
+like C<$foo[1][2][3]>, as in C.
+
+=item Name "%s::%s" used only once: possible typo
+
+(W) Typographical errors often show up as unique variable names. If you
+had a good reason for having a unique name, then just mention it
+again somehow to suppress the message (the C<use vars> pragma is
+provided for just this purpose).
=item Negative length
didn't define a DB::sub routine to be called at the beginning of each
ordinary subroutine call.
-=item No error file after 2> or 2>> on command line
+=item No error file after 2E<gt> or 2E<gt>E<gt> on command line
(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '2>' or a '2>>' on the command line, but can't find the name of the
-file to which to write data destined for stderr.
+and found a '2E<gt>' or a '2E<gt>E<gt>' on the command line, but can't find
+the name of the file to which to write data destined for stderr.
-=item No input file after < on command line
+=item No input file after E<lt> on command line
(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '<' on the command line, but can't find the name of the file from
-which to read data for stdin.
+and found a 'E<lt>' on the command line, but can't find the name of the file
+from which to read data for stdin.
-=item No output file after > on command line
+=item No output file after E<gt> on command line
(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a lone '>' at the end of the command line, so it doesn't know whither
-you wanted to redirect stdout.
+and found a lone 'E<gt>' at the end of the command line, so it doesn't know
+whither you wanted to redirect stdout.
-=item No output file after > or >> on command line
+=item No output file after E<gt> or E<gt>E<gt> on command line
(F) An error peculiar to VMS. Perl handles its own command line redirection,
-and found a '>' or a '>>' on the command line, but can't find the name of the
-file to which to write data destined for stdout.
+and found a 'E<gt>' or a 'E<gt>E<gt>' on the command line, but can't find the
+name of the file to which to write data destined for stdout.
=item No Perl script found in input
=item Not a subroutine reference in %OVERLOAD
(F) An attempt was made to specify an entry in an overloading table that
-doesn't somehow point to a valid subroutine. See L<perlovl>.
+doesn't somehow point to a valid subroutine. See L<overload>.
=item Not an ARRAY reference
=item Operation `%s' %s: no method found,
(F) An attempt was made to use an entry in an overloading table that
-somehow no longer points to a valid method. See L<perlovl>.
+somehow no longer points to a valid method. See L<overload>.
=item Operator or semicolon missing before %s
(S) The subroutine being defined had a predeclared (forward) declaration
with a different function prototype.
-=item Read on closed filehandle <%s>
+=item Read on closed filehandle E<lt>%sE<gt>
(W) The filehandle you're reading from got itself closed sometime before now.
Check your logic flow.
(W) You've used an array slice (indicated by @) to select a single value of
an array. Generally it's better to ask for a scalar value (indicated by $).
-The difference is that $foo[&bar] always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while @foo[&bar] behaves
+The difference is that C<$foo[&bar]> always behaves like a scalar, both when
+assigning to it and when evaluating its argument, while C<@foo[&bar]> behaves
like a list when you assign to it, and provides a list context to its
subscript, which can do weird things if you're only expecting one subscript.
=item Script is not setuid/setgid in suidperl
(F) Oddly, the suidperl program was invoked on a script with its setuid
-or setgid bit set. This doesn't make much sense.
+or setgid bit not set. This doesn't make much sense.
=item Search pattern not terminated
=item setegid() not implemented
-(F) You tried to assign to $), and your operating system doesn't support
+(F) You tried to assign to C<$)>, and your operating system doesn't support
the setegid() system call (or equivalent), or at least Configure didn't
think so.
=item seteuid() not implemented
-(F) You tried to assign to $>, and your operating system doesn't support
+(F) You tried to assign to C<$E<gt>>, and your operating system doesn't support
the seteuid() system call (or equivalent), or at least Configure didn't
think so.
=item setrgid() not implemented
-(F) You tried to assign to $(, and your operating system doesn't support
+(F) You tried to assign to C<$(>, and your operating system doesn't support
the setrgid() system call (or equivalent), or at least Configure didn't
think so.
=item setruid() not implemented
-(F) You tried to assign to $<, and your operating system doesn't support
+(F) You tried to assign to C<$<lt>>, and your operating system doesn't support
the setruid() system call (or equivalent), or at least Configure didn't
think so.
more times than there are characters of input, which is what happened.)
See L<perlfunc/split>.
-=item Stat on unopened file <%s>
+=item Stat on unopened file E<lt>%sE<gt>
(W) You tried to use the stat() function (or an equivalent file test)
on a filehandle that was either never opened or has been closed since.
=item syntax error at line %d: `%s' unexpected
-(A) You've accidentally run your script through the Bourne shell
-instead of Perl. Check the <#!> line, or manually feed your script
+(A) You've accidentally run your script through the Bourne shell
+instead of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item System V IPC is not implemented on this machine
(W) You tried to use the tell() function on a filehandle that was either
never opened or has been closed since.
-=item Test on unopened file <%s>
+=item Test on unopened file E<lt>%sE<gt>
(W) You tried to invoke a file test operator on a filehandle that isn't
open. Check your logic. See also L<perlfunc/-X>.
=item That use of $[ is unsupported
-(F) Assignment to $[ is now strictly circumscribed, and interpreted as
+(F) Assignment to C<$[> is now strictly circumscribed, and interpreted as
a compiler directive. You may only say one of
$[ = 0;
(F) Configure couldn't find the crypt() function on your machine,
probably because your vendor didn't supply it, probably because they
-think the U.S. Govermnment thinks it's a secret, or at least that they
+think the U.S. Government thinks it's a secret, or at least that they
will continue to pretend that it is. And if you quote me on that, I
will deny it.
=item Too many )'s
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item Too many args to syscall
=item Type of arg %d to %s must be %s (not %s)
(F) This function requires the argument in that position to be of a
-certain type. Arrays must be @NAME or @{EXPR}. Hashes must be
-%NAME or %{EXPR}. No implicit dereferencing is allowed--use the
+certain type. Arrays must be @NAME or C<@{EXPR}>. Hashes must be
+%NAME or C<%{EXPR}>. No implicit dereferencing is allowed--use the
{EXPR} forms as an explicit dereference. See L<perlref>.
=item umask: argument is missing initial 0
(F) Your machine doesn't support the Berkeley socket mechanism, or at
least that's what Configure thought.
-=item Unterminated <> operator
+=item Unterminated E<lt>E<gt> operator
(F) The lexer saw a left angle bracket in a place where it was expecting
a term, so it's looking for the corresponding right angle bracket, and not
=item Use of $# is deprecated
-(D) This was an ill-advised attempt to emulate a poorly defined awk feature.
+(D) This was an ill-advised attempt to emulate a poorly defined B<awk> feature.
Use an explicit printf() or sprintf() instead.
=item Use of $* is deprecated
because there's a better way to do it, and also because the old way has
bad side effects.
-=item Use of bare << to mean <<"" is deprecated
+=item Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated
(D) You are now encouraged to use the explicitly quoted form if you
wish to use a blank line as the terminator of the here-document.
=item Variable syntax.
(A) You've accidentally run your script through B<csh> instead
-of Perl. Check the <#!> line, or manually feed your script
+of Perl. Check the E<lt>#!E<gt> line, or manually feed your script
into Perl yourself.
=item Warning: unable to close filehandle %s properly.
-(S) The implicit close() done by an open() got an error indication on the
+(S) The implicit close() done by an open() got an error indication on the
close(). This usually indicates your filesystem ran out of disk space.
=item Warning: Use of "%s" without parens is ambiguous
because other Perl programmers will expect it, and it works better
if there are more than 9 backreferences.
-=item '|' and '<' may not both be specified on command line
+=item '|' and 'E<lt>' may not both be specified on command line
(F) An error peculiar to VMS. Perl does its own command line redirection, and
found that STDIN was a pipe, and that you also tried to redirect STDIN using
-'<'. Only one STDIN stream to a customer, please.
+'E<lt>'. Only one STDIN stream to a customer, please.
-=item '|' and '>' may not both be specified on command line
+=item '|' and 'E<gt>' may not both be specified on command line
(F) An error peculiar to VMS. Perl does its own command line redirection, and
thinks you tried to redirect stdout both to a file and into a pipe to another