summaryrefslogtreecommitdiffstats
path: root/upstream/debian-unstable/man1/perldiag.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/debian-unstable/man1/perldiag.1')
-rw-r--r--upstream/debian-unstable/man1/perldiag.17817
1 files changed, 7817 insertions, 0 deletions
diff --git a/upstream/debian-unstable/man1/perldiag.1 b/upstream/debian-unstable/man1/perldiag.1
new file mode 100644
index 00000000..11f97287
--- /dev/null
+++ b/upstream/debian-unstable/man1/perldiag.1
@@ -0,0 +1,7817 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "PERLDIAG 1"
+.TH PERLDIAG 1 2024-01-12 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+perldiag \- various Perl diagnostics
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+These messages are classified as follows (listed in increasing order of
+desperation):
+.PP
+.Vb 7
+\& (W) A warning (optional).
+\& (D) A deprecation (enabled by default).
+\& (S) A severe warning (enabled by default).
+\& (F) A fatal error (trappable).
+\& (P) An internal error you should never see (trappable).
+\& (X) A very fatal error (nontrappable).
+\& (A) An alien error message (not generated by Perl).
+.Ve
+.PP
+The majority of messages from the first three classifications above
+(W, D & S) can be controlled using the \f(CW\*(C`warnings\*(C'\fR pragma.
+.PP
+If a message can be controlled by the \f(CW\*(C`warnings\*(C'\fR pragma, its warning
+category is included with the classification letter in the description
+below. E.g. \f(CW\*(C`(W closed)\*(C'\fR means a warning in the \f(CW\*(C`closed\*(C'\fR category.
+.PP
+Optional warnings are enabled by using the \f(CW\*(C`warnings\*(C'\fR pragma or the \fB\-w\fR
+and \fB\-W\fR switches. Warnings may be captured by setting \f(CW$SIG{_\|_WARN_\|_}\fR
+to a reference to a routine that will be called on each warning instead
+of printing it. See perlvar.
+.PP
+Severe warnings are always enabled, unless they are explicitly disabled
+with the \f(CW\*(C`warnings\*(C'\fR pragma or the \fB\-X\fR switch.
+.PP
+Trappable errors may be trapped using the eval operator. See
+"eval" in perlfunc. In almost all cases, warnings may be selectively
+disabled or promoted to fatal errors using the \f(CW\*(C`warnings\*(C'\fR pragma.
+See warnings.
+.PP
+The messages are in alphabetical order, without regard to upper or
+lower-case. Some of these messages are generic. Spots that vary are
+denoted with a \f(CW%s\fR or other printf-style escape. These escapes are
+ignored by the alphabetical order, as are all characters other than
+letters. To look up your message, just ignore anything that is not a
+letter.
+.ie n .IP "\fBaccept()\fR on closed socket %s" 4
+.el .IP "\fBaccept()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "accept() on closed socket %s"
+(W closed) You tried to do an accept on a closed socket. Did you forget
+to check the return value of your \fBsocket()\fR call? See
+"accept" in perlfunc.
+.IP "ADJUST is experimental" 4
+.IX Item "ADJUST is experimental"
+(S experimental::class) This warning is emitted if you use the \f(CW\*(C`ADJUST\*(C'\fR
+keyword of \f(CW\*(C`use feature \*(Aqclass\*(Aq\*(C'\fR. This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+.IP "Aliasing via reference is experimental" 4
+.IX Item "Aliasing via reference is experimental"
+(S experimental::refaliasing) This warning is emitted if you use
+a reference constructor on the left-hand side of an assignment to
+alias one variable to another. Simply suppress the warning if you
+want to use the feature, but know that in doing so you are taking
+the risk of using an experimental feature which may change or be
+removed in a future Perl version:
+.Sp
+.Vb 3
+\& no warnings "experimental::refaliasing";
+\& use feature "refaliasing";
+\& \e$x = \e$y;
+.Ve
+.ie n .IP "'%c' allowed only after types %s in %s" 4
+.el .IP "'%c' allowed only after types \f(CW%s\fR in \f(CW%s\fR" 4
+.IX Item "'%c' allowed only after types %s in %s"
+(F) The modifiers '!', '<' and '>' are allowed in \fBpack()\fR or \fBunpack()\fR only
+after certain types. See "pack" in perlfunc.
+.IP "alpha\->\fBnumify()\fR is lossy" 4
+.IX Item "alpha->numify() is lossy"
+(W numeric) An alpha version can not be numified without losing
+information.
+.IP "Ambiguous call resolved as CORE::%s(), qualify as such or use &" 4
+.IX Item "Ambiguous call resolved as CORE::%s(), qualify as such or use &"
+(W ambiguous) A subroutine you have declared has the same name as a Perl
+keyword, and you have used the name without qualification for calling
+one or the other. Perl decided to call the builtin because the
+subroutine is not imported.
+.Sp
+To force interpretation as a subroutine call, either put an ampersand
+before the subroutine name, or qualify the name with its package.
+Alternatively, you can import the subroutine (or pretend that it's
+imported with the \f(CW\*(C`use subs\*(C'\fR pragma).
+.Sp
+To silently interpret it as the Perl operator, use the \f(CW\*(C`CORE::\*(C'\fR prefix
+on the operator (e.g. \f(CWCORE::log($x)\fR) or declare the subroutine
+to be an object method (see "Subroutine Attributes" in perlsub or
+attributes).
+.IP "Ambiguous range in transliteration operator" 4
+.IX Item "Ambiguous range in transliteration operator"
+(F) You wrote something like \f(CW\*(C`tr/a\-z\-0//\*(C'\fR which doesn't mean anything at
+all. To include a \f(CW\*(C`\-\*(C'\fR character in a transliteration, put it either
+first or last. (In the past, \f(CW\*(C`tr/a\-z\-0//\*(C'\fR was synonymous with
+\&\f(CW\*(C`tr/a\-y//\*(C'\fR, which was probably not what you would have expected.)
+.ie n .IP "Ambiguous use of %s resolved as %s" 4
+.el .IP "Ambiguous use of \f(CW%s\fR resolved as \f(CW%s\fR" 4
+.IX Item "Ambiguous use of %s resolved as %s"
+(S ambiguous) You said something that may not be interpreted the way
+you thought. Normally it's pretty easy to disambiguate it by supplying
+a missing quote, operator, parenthesis pair or declaration.
+.IP "Ambiguous use of \-%s resolved as \-&%s()" 4
+.IX Item "Ambiguous use of -%s resolved as -&%s()"
+(S ambiguous) You wrote something like \f(CW\*(C`\-foo\*(C'\fR, which might be the
+string \f(CW"\-foo"\fR, or a call to the function \f(CW\*(C`foo\*(C'\fR, negated. If you meant
+the string, just write \f(CW"\-foo"\fR. If you meant the function call,
+write \f(CW\*(C`\-foo()\*(C'\fR.
+.ie n .IP "Ambiguous use of %c resolved as operator %c" 4
+.el .IP "Ambiguous use of \f(CW%c\fR resolved as operator \f(CW%c\fR" 4
+.IX Item "Ambiguous use of %c resolved as operator %c"
+(S ambiguous) \f(CW\*(C`%\*(C'\fR, \f(CW\*(C`&\*(C'\fR, and \f(CW\*(C`*\*(C'\fR are both infix operators (modulus,
+bitwise and, and multiplication) \fIand\fR initial special characters
+(denoting hashes, subroutines and typeglobs), and you said something
+like \f(CW\*(C`*foo * foo\*(C'\fR that might be interpreted as either of them. We
+assumed you meant the infix operator, but please try to make it more
+clear \-\- in the example given, you might write \f(CW\*(C`*foo * foo()\*(C'\fR if you
+really meant to multiply a glob by the result of calling a function.
+.ie n .IP "Ambiguous use of %c{%s} resolved to %c%s" 4
+.el .IP "Ambiguous use of \f(CW%c\fR{%s} resolved to \f(CW%c\fR%s" 4
+.IX Item "Ambiguous use of %c{%s} resolved to %c%s"
+(W ambiguous) You wrote something like \f(CW\*(C`@{foo}\*(C'\fR, which might be
+asking for the variable \f(CW@foo\fR, or it might be calling a function
+named foo, and dereferencing it as an array reference. If you wanted
+the variable, you can just write \f(CW@foo\fR. If you wanted to call the
+function, write \f(CW\*(C`@{foo()}\*(C'\fR ... or you could just not have a variable
+and a function with the same name, and save yourself a lot of trouble.
+.ie n .IP "Ambiguous use of %c{%s[...]} resolved to %c%s[...]" 4
+.el .IP "Ambiguous use of \f(CW%c\fR{%s[...]} resolved to \f(CW%c\fR%s[...]" 4
+.IX Item "Ambiguous use of %c{%s[...]} resolved to %c%s[...]"
+.PD 0
+.ie n .IP "Ambiguous use of %c{%s{...}} resolved to %c%s{...}" 4
+.el .IP "Ambiguous use of \f(CW%c\fR{%s{...}} resolved to \f(CW%c\fR%s{...}" 4
+.IX Item "Ambiguous use of %c{%s{...}} resolved to %c%s{...}"
+.PD
+(W ambiguous) You wrote something like \f(CW\*(C`${foo[2]}\*(C'\fR (where foo represents
+the name of a Perl keyword), which might be looking for element number
+2 of the array named \f(CW@foo\fR, in which case please write \f(CW$foo[2]\fR, or you
+might have meant to pass an anonymous arrayref to the function named
+foo, and then do a scalar deref on the value it returns. If you meant
+that, write \f(CW\*(C`${foo([2])}\*(C'\fR.
+.Sp
+In regular expressions, the \f(CW\*(C`${foo[2]}\*(C'\fR syntax is sometimes necessary
+to disambiguate between array subscripts and character classes.
+\&\f(CW\*(C`/$length[2345]/\*(C'\fR, for instance, will be interpreted as \f(CW$length\fR followed
+by the character class \f(CW\*(C`[2345]\*(C'\fR. If an array subscript is what you
+want, you can avoid the warning by changing \f(CW\*(C`/${length[2345]}/\*(C'\fR to the
+unsightly \f(CW\*(C`/${\e$length[2345]}/\*(C'\fR, by renaming your array to something
+that does not coincide with a built-in keyword, or by simply turning
+off warnings with \f(CW\*(C`no warnings \*(Aqambiguous\*(Aq;\*(C'\fR.
+.IP "'|' and '<' may not both be specified on command line" 4
+.IX Item "'|' and '<' 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.
+.IP "'|' and '>' may not both be specified on command line" 4
+.IX Item "'|' and '>' 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 command. You need to choose one or the other,
+though nothing's stopping you from piping into a program or Perl script
+which 'splits' output into two streams, such as
+.Sp
+.Vb 6
+\& open(OUT,">$ARGV[0]") or die "Can\*(Aqt write to $ARGV[0]: $!";
+\& while (<STDIN>) {
+\& print;
+\& print OUT;
+\& }
+\& close OUT;
+.Ve
+.ie n .IP "Applying %s to %s will act on scalar(%s)" 4
+.el .IP "Applying \f(CW%s\fR to \f(CW%s\fR will act on scalar(%s)" 4
+.IX Item "Applying %s to %s will act on scalar(%s)"
+(W misc) The pattern match (\f(CW\*(C`//\*(C'\fR), substitution (\f(CW\*(C`s///\*(C'\fR), and
+transliteration (\f(CW\*(C`tr///\*(C'\fR) operators work on scalar values. If you apply
+one of them to an array or a hash, it will convert the array or hash to
+a scalar value (the length of an array, or the population info of a
+hash) and then work on that scalar value. This is probably not what
+you meant to do. See "grep" in perlfunc and "map" in perlfunc for
+alternatives.
+.IP "Arg too short for msgsnd" 4
+.IX Item "Arg too short for msgsnd"
+(F) \fBmsgsnd()\fR requires a string at least as long as sizeof(long).
+.IP "Argument ""%s"" isn't numeric%s" 4
+.IX Item "Argument ""%s"" isn't numeric%s"
+(W numeric) The indicated string was fed as an argument to an operator
+that expected a numeric value instead. If you're fortunate the message
+will identify which operator was so unfortunate.
+.Sp
+Note that for the \f(CW\*(C`Inf\*(C'\fR and \f(CW\*(C`NaN\*(C'\fR (infinity and not-a-number) the
+definition of "numeric" is somewhat unusual: the strings themselves
+(like "Inf") are considered numeric, and anything following them is
+considered non-numeric.
+.IP "Argument list not closed for PerlIO layer ""%s""" 4
+.IX Item "Argument list not closed for PerlIO layer ""%s"""
+(W layer) When pushing a layer with arguments onto the Perl I/O
+system you forgot the ) that closes the argument list. (Layers
+take care of transforming data between external and internal
+representations.) Perl stopped parsing the layer list at this
+point and did not attempt to push this layer. If your program
+didn't explicitly request the failing operation, it may be the
+result of the value of the environment variable PERLIO.
+.IP "Argument ""%s"" treated as 0 in increment (++)" 4
+.IX Item "Argument ""%s"" treated as 0 in increment (++)"
+(W numeric) The indicated string was fed as an argument to the \f(CW\*(C`++\*(C'\fR
+operator which expects either a number or a string matching
+\&\f(CW\*(C`/^[a\-zA\-Z]*[0\-9]*\ez/\*(C'\fR. See "Auto-increment and
+Auto-decrement" in perlop for details.
+.IP "Array passed to stat will be coerced to a scalar%s" 4
+.IX Item "Array passed to stat will be coerced to a scalar%s"
+(W syntax) You called \fBstat()\fR on an array, but the array will be
+coerced to a scalar \- the number of elements in the array.
+.IP "A signature parameter must start with '$', '@' or '%'" 4
+.IX Item "A signature parameter must start with '$', '@' or '%'"
+(F) Each subroutine signature parameter declaration must start with a valid
+sigil; for example:
+.Sp
+.Vb 1
+\& sub foo ($a, $, $b = 1, @c) {}
+.Ve
+.IP "A slurpy parameter may not have a default value" 4
+.IX Item "A slurpy parameter may not have a default value"
+(F) Only scalar subroutine signature parameters may have a default value;
+for example:
+.Sp
+.Vb 3
+\& sub foo ($a = 1) {} # legal
+\& sub foo (@a = (1)) {} # invalid
+\& sub foo (%a = (a => b)) {} # invalid
+.Ve
+.ie n .IP "assertion botched: %s" 4
+.el .IP "assertion botched: \f(CW%s\fR" 4
+.IX Item "assertion botched: %s"
+(X) The malloc package that comes with Perl had an internal failure.
+.ie n .IP "Assertion %s failed: file ""%s"", line %d" 4
+.el .IP "Assertion \f(CW%s\fR failed: file ""%s"", line \f(CW%d\fR" 4
+.IX Item "Assertion %s failed: file ""%s"", line %d"
+(X) A general assertion failed. The file in question must be examined.
+.IP "Assigned value is not a reference" 4
+.IX Item "Assigned value is not a reference"
+(F) You tried to assign something that was not a reference to an lvalue
+reference (e.g., \f(CW\*(C`\e$x = $y\*(C'\fR). If you meant to make \f(CW$x\fR an alias to \f(CW$y\fR, use
+\&\f(CW\*(C`\e$x = \e$y\*(C'\fR.
+.ie n .IP "Assigned value is not %s reference" 4
+.el .IP "Assigned value is not \f(CW%s\fR reference" 4
+.IX Item "Assigned value is not %s reference"
+(F) You tried to assign a reference to a reference constructor, but the
+two references were not of the same type. You cannot alias a scalar to
+an array, or an array to a hash; the two types must match.
+.Sp
+.Vb 4
+\& \e$x = \e@y; # error
+\& \e@x = \e%y; # error
+\& $y = [];
+\& \e$x = $y; # error; did you mean \e$y?
+.Ve
+.IP "Assigning non-zero to $[ is no longer possible" 4
+.IX Item "Assigning non-zero to $[ is no longer possible"
+(F) When the "array_base" feature is disabled
+(e.g., and under \f(CW\*(C`use v5.16;\*(C'\fR, and as of Perl 5.30)
+the special variable \f(CW$[\fR, which is deprecated, is now a fixed zero value.
+.IP "Assignment to both a list and a scalar" 4
+.IX Item "Assignment to both a list and a scalar"
+(F) If you assign to a conditional operator, the 2nd and 3rd arguments
+must either both be scalars or both be lists. Otherwise Perl won't
+know which context to supply to the right side.
+.ie n .IP "Assuming NOT a POSIX class since %s in regex; marked by <\-\-\ HERE in m/%s/" 4
+.el .IP "Assuming NOT a POSIX class since \f(CW%s\fR in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Assuming NOT a POSIX class since %s in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You had something like these:
+.Sp
+.Vb 2
+\& [[:alnum]]
+\& [[:digit:xyz]
+.Ve
+.Sp
+They look like they might have been meant to be the POSIX classes
+\&\f(CW\*(C`[:alnum:]\*(C'\fR or \f(CW\*(C`[:digit:]\*(C'\fR. If so, they should be written:
+.Sp
+.Vb 2
+\& [[:alnum:]]
+\& [[:digit:]xyz]
+.Ve
+.Sp
+Since these aren't legal POSIX class specifications, but are legal
+bracketed character classes, Perl treats them as the latter. In the
+first example, it matches the characters \f(CW":"\fR, \f(CW"["\fR, \f(CW"a"\fR, \f(CW"l"\fR,
+\&\f(CW"m"\fR, \f(CW"n"\fR, and \f(CW"u"\fR.
+.Sp
+If these weren't meant to be POSIX classes, this warning message is
+spurious, and can be suppressed by reordering things, such as
+.Sp
+.Vb 1
+\& [[al:num]]
+.Ve
+.Sp
+or
+.Sp
+.Vb 1
+\& [[:munla]]
+.Ve
+.IP "<> at require-statement should be quotes" 4
+.IX Item "<> at require-statement should be quotes"
+(F) You wrote \f(CW\*(C`require <file>\*(C'\fR when you should have written
+\&\f(CW\*(C`require \*(Aqfile\*(Aq\*(C'\fR.
+.IP "Attempt to access disallowed key '%s' in a restricted hash" 4
+.IX Item "Attempt to access disallowed key '%s' in a restricted hash"
+(F) The failing code has attempted to get or set a key which is not in
+the current set of allowed keys of a restricted hash.
+.IP "Attempt to bless into a freed package" 4
+.IX Item "Attempt to bless into a freed package"
+(F) You wrote \f(CW\*(C`bless $foo\*(C'\fR with one argument after somehow causing
+the current package to be freed. Perl cannot figure out what to
+do, so it throws up its hands in despair.
+.IP "Attempt to bless into a class" 4
+.IX Item "Attempt to bless into a class"
+(F) You are attempting to call \f(CW\*(C`bless\*(C'\fR with a package name that is a
+new-style \f(CW\*(C`class\*(C'\fR. This is not necessary, as instances created by the
+constructor are already in the correct class. Instances cannot be created
+by other means, such as \f(CW\*(C`bless\*(C'\fR.
+.IP "Attempt to bless into a reference" 4
+.IX Item "Attempt to bless into a reference"
+(F) The CLASSNAME argument to the \fBbless()\fR operator is expected to be
+the name of the package to bless the resulting object into. You've
+supplied instead a reference to something: perhaps you wrote
+.Sp
+.Vb 1
+\& bless $self, $proto;
+.Ve
+.Sp
+when you intended
+.Sp
+.Vb 1
+\& bless $self, ref($proto) || $proto;
+.Ve
+.Sp
+If you actually want to bless into the stringified version
+of the reference supplied, you need to stringify it yourself, for
+example by:
+.Sp
+.Vb 1
+\& bless $self, "$proto";
+.Ve
+.IP "Attempt to clear deleted array" 4
+.IX Item "Attempt to clear deleted array"
+(S debugging) An array was assigned to when it was being freed.
+Freed values are not supposed to be visible to Perl code. This
+can also happen if XS code calls \f(CW\*(C`av_clear\*(C'\fR from a custom magic
+callback on the array.
+.IP "Attempt to delete disallowed key '%s' from a restricted hash" 4
+.IX Item "Attempt to delete disallowed key '%s' from a restricted hash"
+(F) The failing code attempted to delete from a restricted hash a key
+which is not in its key set.
+.IP "Attempt to delete readonly key '%s' from a restricted hash" 4
+.IX Item "Attempt to delete readonly key '%s' from a restricted hash"
+(F) The failing code attempted to delete a key whose value has been
+declared readonly from a restricted hash.
+.IP "Attempt to free non-arena SV: 0x%x" 4
+.IX Item "Attempt to free non-arena SV: 0x%x"
+(S internal) All SV objects are supposed to be allocated from arenas
+that will be garbage collected on exit. An SV was discovered to be
+outside any of those arenas.
+.IP "Attempt to free nonexistent shared string '%s'%s" 4
+.IX Item "Attempt to free nonexistent shared string '%s'%s"
+(S internal) Perl maintains a reference-counted internal table of
+strings to optimize the storage and access of hash keys and other
+strings. This indicates someone tried to decrement the reference count
+of a string that can no longer be found in the table.
+.IP "Attempt to free temp prematurely: SV 0x%x" 4
+.IX Item "Attempt to free temp prematurely: SV 0x%x"
+(S debugging) Mortalized values are supposed to be freed by the
+\&\fBfree_tmps()\fR routine. This indicates that something else is freeing the
+SV before the \fBfree_tmps()\fR routine gets a chance, which means that the
+\&\fBfree_tmps()\fR routine will be freeing an unreferenced scalar when it does
+try to free it.
+.IP "Attempt to free unreferenced glob pointers" 4
+.IX Item "Attempt to free unreferenced glob pointers"
+(S internal) The reference counts got screwed up on symbol aliases.
+.IP "Attempt to free unreferenced scalar: SV 0x%x" 4
+.IX Item "Attempt to free unreferenced scalar: SV 0x%x"
+(S internal) Perl went to decrement the reference count of a scalar to
+see if it would go to 0, and discovered that it had already gone to 0
+earlier, and should have been freed, and in fact, probably was freed.
+This could indicate that \fBSvREFCNT_dec()\fR was called too many times, or
+that \fBSvREFCNT_inc()\fR was called too few times, or that the SV was
+mortalized when it shouldn't have been, or that memory has been
+corrupted.
+.IP "Attempt to pack pointer to temporary value" 4
+.IX Item "Attempt to pack pointer to temporary value"
+(W pack) You tried to pass a temporary value (like the result of a
+function, or a computed expression) to the "p" \fBpack()\fR template. This
+means the result contains a pointer to a location that could become
+invalid anytime, even before the end of the current statement. Use
+literals or global values as arguments to the "p" \fBpack()\fR template to
+avoid this warning.
+.ie n .IP "Attempt to reload %s aborted." 4
+.el .IP "Attempt to reload \f(CW%s\fR aborted." 4
+.IX Item "Attempt to reload %s aborted."
+(F) You tried to load a file with \f(CW\*(C`use\*(C'\fR or \f(CW\*(C`require\*(C'\fR that failed to
+compile once already. Perl will not try to compile this file again
+unless you delete its entry from \f(CW%INC\fR. See "require" in perlfunc and
+"%INC" in perlvar.
+.IP "Attempt to set length of freed array" 4
+.IX Item "Attempt to set length of freed array"
+(W misc) You tried to set the length of an array which has
+been freed. You can do this by storing a reference to the
+scalar representing the last index of an array and later
+assigning through that reference. For example
+.Sp
+.Vb 2
+\& $r = do {my @a; \e$#a};
+\& $$r = 503
+.Ve
+.IP "Attempt to use reference as lvalue in substr" 4
+.IX Item "Attempt to use reference as lvalue in substr"
+(W substr) You supplied a reference as the first argument to \fBsubstr()\fR
+used as an lvalue, which is pretty strange. Perhaps you forgot to
+dereference it first. See "substr" in perlfunc.
+.IP "Attribute prototype(%s) discards earlier prototype attribute in same sub" 4
+.IX Item "Attribute prototype(%s) discards earlier prototype attribute in same sub"
+(W misc) A sub was declared as sub foo : prototype(A) : prototype(B) {}, for
+example. Since each sub can only have one prototype, the earlier
+declaration(s) are discarded while the last one is applied.
+.IP "av_reify called on tied array" 4
+.IX Item "av_reify called on tied array"
+(S debugging) This indicates that something went wrong and Perl got \fIvery\fR
+confused about \f(CW@_\fR or \f(CW@DB::args\fR being tied.
+.ie n .IP "Bad arg length for %s, is %u, should be %d" 4
+.el .IP "Bad arg length for \f(CW%s\fR, is \f(CW%u\fR, should be \f(CW%d\fR" 4
+.IX Item "Bad arg length for %s, is %u, should be %d"
+(F) You passed a buffer of the wrong size to one of \fBmsgctl()\fR, \fBsemctl()\fR
+or \fBshmctl()\fR. In C parlance, the correct sizes are, respectively,
+sizeof(struct\ msqid_ds\ *), sizeof(struct\ semid_ds\ *), and
+sizeof(struct\ shmid_ds\ *).
+.IP "Bad evalled substitution pattern" 4
+.IX Item "Bad evalled substitution pattern"
+(F) You've used the \f(CW\*(C`/e\*(C'\fR switch to evaluate the replacement for a
+substitution, but perl found a syntax error in the code to evaluate,
+most likely an unexpected right brace '}'.
+.ie n .IP "Bad filehandle: %s" 4
+.el .IP "Bad filehandle: \f(CW%s\fR" 4
+.IX Item "Bad filehandle: %s"
+(F) A symbol was passed to something wanting a filehandle, but the
+symbol has no filehandle associated with it. Perhaps you didn't do an
+\&\fBopen()\fR, or did it in another package.
+.IP "Bad \fBfree()\fR ignored" 4
+.IX Item "Bad free() ignored"
+(S malloc) An internal routine called \fBfree()\fR on something that had never
+been \fBmalloc()\fRed in the first place. Mandatory, but can be disabled by
+setting environment variable \f(CW\*(C`PERL_BADFREE\*(C'\fR to 0.
+.Sp
+This message can be seen quite often with DB_File on systems with "hard"
+dynamic linking, like \f(CW\*(C`AIX\*(C'\fR and \f(CW\*(C`OS/2\*(C'\fR. It is a bug of \f(CW\*(C`Berkeley DB\*(C'\fR
+which is left unnoticed if \f(CW\*(C`DB\*(C'\fR uses \fIforgiving\fR system \fBmalloc()\fR.
+.IP "Bad infix plugin result (%zd) \- did not consume entire identifier <%s>" 4
+.IX Item "Bad infix plugin result (%zd) - did not consume entire identifier <%s>"
+(F) A plugin using the \f(CW\*(C`PL_infix_plugin\*(C'\fR mechanism to parse an infix
+keyword consumed part of a named identifier operator name but did not
+consume all of it. This is not permitted as it leads to fragile parsing
+results.
+.IP "Badly placed ()'s" 4
+.IX Item "Badly placed ()'s"
+(A) You've accidentally run your script through \fBcsh\fR instead
+of Perl. Check the #! line, or manually feed your script into
+Perl yourself.
+.ie n .IP "Bad name after %s" 4
+.el .IP "Bad name after \f(CW%s\fR" 4
+.IX Item "Bad name after %s"
+(F) You started to name a symbol by using a package prefix, and then
+didn't finish the symbol. In particular, you can't interpolate outside
+of quotes, so
+.Sp
+.Vb 2
+\& $var = \*(Aqmyvar\*(Aq;
+\& $sym = mypack::$var;
+.Ve
+.Sp
+is not the same as
+.Sp
+.Vb 2
+\& $var = \*(Aqmyvar\*(Aq;
+\& $sym = "mypack::$var";
+.Ve
+.IP "Bad plugin affecting keyword '%s'" 4
+.IX Item "Bad plugin affecting keyword '%s'"
+(F) An extension using the keyword plugin mechanism violated the
+plugin API.
+.IP "Bad \fBrealloc()\fR ignored" 4
+.IX Item "Bad realloc() ignored"
+(S malloc) An internal routine called \fBrealloc()\fR on something that
+had never been \fBmalloc()\fRed in the first place. Mandatory, but can
+be disabled by setting the environment variable \f(CW\*(C`PERL_BADFREE\*(C'\fR to 1.
+.ie n .IP "Bad symbol for %s" 4
+.el .IP "Bad symbol for \f(CW%s\fR" 4
+.IX Item "Bad symbol for %s"
+(P) An internal request asked to add an entry of the named type to something that
+wasn't a symbol table entry.
+.IP "Bad symbol for scalar" 4
+.IX Item "Bad symbol for scalar"
+(P) An internal request asked to add a scalar entry to something that
+wasn't a symbol table entry.
+.IP "Bareword found in conditional" 4
+.IX Item "Bareword found in conditional"
+(W bareword) The compiler found a bareword where it expected a
+conditional, which often indicates that an || or && was parsed as part
+of the last argument of the previous construct, for example:
+.Sp
+.Vb 1
+\& open FOO || die;
+.Ve
+.Sp
+It may also indicate a misspelled constant that has been interpreted as
+a bareword:
+.Sp
+.Vb 2
+\& use constant TYPO => 1;
+\& if (TYOP) { print "foo" }
+.Ve
+.Sp
+The \f(CW\*(C`strict\*(C'\fR pragma is useful in avoiding such errors.
+.IP "Bareword in require contains ""%s""" 4
+.IX Item "Bareword in require contains ""%s"""
+.PD 0
+.IP "Bareword in require maps to disallowed filename ""%s""" 4
+.IX Item "Bareword in require maps to disallowed filename ""%s"""
+.IP "Bareword in require maps to empty filename" 4
+.IX Item "Bareword in require maps to empty filename"
+.PD
+(F) The bareword form of require has been invoked with a filename which could
+not have been generated by a valid bareword permitted by the parser. You
+shouldn't be able to get this error from Perl code, but XS code may throw it
+if it passes an invalid module name to \f(CW\*(C`Perl_load_module\*(C'\fR.
+.IP "Bareword in require must not start with a double-colon: ""%s""" 4
+.IX Item "Bareword in require must not start with a double-colon: ""%s"""
+(F) In \f(CW\*(C`require Bare::Word\*(C'\fR, the bareword is not allowed to start with a
+double-colon. Write \f(CW\*(C`require ::Foo::Bar\*(C'\fR as \f(CW\*(C`require Foo::Bar\*(C'\fR instead.
+.IP "Bareword ""%s"" not allowed while ""strict subs"" in use" 4
+.IX Item "Bareword ""%s"" not allowed while ""strict subs"" in use"
+(F) With "strict subs" in use, a bareword is only allowed as a
+subroutine identifier, in curly brackets or to the left of the "=>"
+symbol. Perhaps you need to predeclare a subroutine?
+.IP "Bareword ""%s"" refers to nonexistent package" 4
+.IX Item "Bareword ""%s"" refers to nonexistent package"
+(W bareword) You used a qualified bareword of the form \f(CW\*(C`Foo::\*(C'\fR, but the
+compiler saw no other uses of that namespace before that point. Perhaps
+you need to predeclare a package?
+.IP "Bareword filehandle ""%s"" not allowed under 'no feature ""bareword_filehandles""'" 4
+.IX Item "Bareword filehandle ""%s"" not allowed under 'no feature ""bareword_filehandles""'"
+(F) You attempted to use a bareword filehandle with the
+\&\f(CW\*(C`bareword_filehandles\*(C'\fR feature disabled.
+.Sp
+Only the built-in handles \f(CW\*(C`STDIN\*(C'\fR, \f(CW\*(C`STDOUT\*(C'\fR, \f(CW\*(C`STDERR\*(C'\fR, \f(CW\*(C`ARGV\*(C'\fR,
+\&\f(CW\*(C`ARGVOUT\*(C'\fR and \f(CW\*(C`DATA\*(C'\fR can be used with the \f(CW\*(C`bareword_filehandles\*(C'\fR
+feature disabled.
+.IP "BEGIN failed\-\-compilation aborted" 4
+.IX Item "BEGIN failed--compilation aborted"
+(F) An untrapped exception was raised while executing a BEGIN
+subroutine. Compilation stops immediately and the interpreter is
+exited.
+.IP "BEGIN not safe after errors\-\-compilation aborted" 4
+.IX Item "BEGIN not safe after errors--compilation aborted"
+(F) Perl found a \f(CW\*(C`BEGIN {}\*(C'\fR subroutine (or a \f(CW\*(C`use\*(C'\fR directive, which
+implies a \f(CW\*(C`BEGIN {}\*(C'\fR) after one or more compilation errors had already
+occurred. Since the intended environment for the \f(CW\*(C`BEGIN {}\*(C'\fR could not
+be guaranteed (due to the errors), and since subsequent code likely
+depends on its correct operation, Perl just gave up.
+.IP "\e%d better written as $%d" 4
+.IX Item "%d better written as $%d"
+(W syntax) Outside of patterns, backreferences live on as variables.
+The use of backslashes is grandfathered on the right-hand side of a
+substitution, but stylistically it's better to use the variable form
+because other Perl programmers will expect it, and it works better if
+there are more than 9 backreferences.
+.IP "Binary number > 0b11111111111111111111111111111111 non-portable" 4
+.IX Item "Binary number > 0b11111111111111111111111111111111 non-portable"
+(W portable) The binary number you specified is larger than 2**32\-1
+(4294967295) and therefore non-portable between systems. See
+perlport for more on portability concerns.
+.ie n .IP "\fBbind()\fR on closed socket %s" 4
+.el .IP "\fBbind()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "bind() on closed socket %s"
+(W closed) You tried to do a bind on a closed socket. Did you forget to
+check the return value of your \fBsocket()\fR call? See "bind" in perlfunc.
+.ie n .IP "\fBbinmode()\fR on closed filehandle %s" 4
+.el .IP "\fBbinmode()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "binmode() on closed filehandle %s"
+(W unopened) You tried \fBbinmode()\fR on a filehandle that was never opened.
+Check your control flow and number of arguments.
+.IP "Bit vector size > 32 non-portable" 4
+.IX Item "Bit vector size > 32 non-portable"
+(W portable) Using bit vector sizes larger than 32 is non-portable.
+.ie n .IP "Bizarre copy of %s" 4
+.el .IP "Bizarre copy of \f(CW%s\fR" 4
+.IX Item "Bizarre copy of %s"
+(P) Perl detected an attempt to copy an internal value that is not
+copiable.
+.IP "Bizarre SvTYPE [%d]" 4
+.IX Item "Bizarre SvTYPE [%d]"
+(P) When starting a new thread or returning values from a thread, Perl
+encountered an invalid data type.
+.IP "Both or neither range ends should be Unicode in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Both or neither range ends should be Unicode in regex; marked by <--\ HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR or within \f(CW\*(C`(?[...])\*(C'\fR)
+.Sp
+In a bracketed character class in a regular expression pattern, you
+had a range which has exactly one end of it specified using \f(CW\*(C`\eN{}\*(C'\fR, and
+the other end is specified using a non-portable mechanism. Perl treats
+the range as a Unicode range, that is, all the characters in it are
+considered to be the Unicode characters, and which may be different code
+points on some platforms Perl runs on. For example, \f(CW\*(C`[\eN{U+06}\-\ex08]\*(C'\fR
+is treated as if you had instead said \f(CW\*(C`[\eN{U+06}\-\eN{U+08}]\*(C'\fR, that is it
+matches the characters whose code points in Unicode are 6, 7, and 8.
+But that \f(CW\*(C`\ex08\*(C'\fR might indicate that you meant something different, so
+the warning gets raised.
+.ie n .IP "Buffer overflow in prime_env_iter: %s" 4
+.el .IP "Buffer overflow in prime_env_iter: \f(CW%s\fR" 4
+.IX Item "Buffer overflow in prime_env_iter: %s"
+(W internal) A warning peculiar to VMS. While Perl was preparing to
+iterate over \f(CW%ENV\fR, it encountered a logical name or symbol definition
+which was too long, so it was truncated to the string shown.
+.IP "Built-in function '%s' is experimental" 4
+.IX Item "Built-in function '%s' is experimental"
+(S experimental::builtin) A call is being made to a function in the
+\&\f(CW\*(C`builtin::\*(C'\fR namespace, which is currently experimental. The existence
+or nature of the function may be subject to change in a future version
+of Perl.
+.IP "builtin::import can only be called at compile time" 4
+.IX Item "builtin::import can only be called at compile time"
+(F) The \f(CW\*(C`import\*(C'\fR method of the \f(CW\*(C`builtin\*(C'\fR package was invoked when no code
+is currently being compiled. Since this method is used to introduce new
+lexical subroutines into the scope currently being compiled, this is not
+going to have any effect.
+.IP "Callback called exit" 4
+.IX Item "Callback called exit"
+(F) A subroutine invoked from an external package via \fBcall_sv()\fR
+exited by calling exit.
+.IP "%s() called too early to check prototype" 4
+.IX Item "%s() called too early to check prototype"
+(W prototype) You've called a function that has a prototype before the
+parser saw a definition or declaration for it, and Perl could not check
+that the call conforms to the prototype. You need to either add an
+early prototype declaration for the subroutine in question, or move the
+subroutine definition ahead of the call to get proper prototype
+checking. Alternatively, if you are certain that you're calling the
+function correctly, you may put an ampersand before the name to avoid
+the warning. See perlsub.
+.ie n .IP "Cannot assign :param(%s) to field %s because that name is already in use" 4
+.el .IP "Cannot assign :param(%s) to field \f(CW%s\fR because that name is already in use" 4
+.IX Item "Cannot assign :param(%s) to field %s because that name is already in use"
+(F) An attempt was made to apply a parameter name to a field, when the name
+is already being used by another field in the same class, or one of its
+parent classes. This would cause a name clash so is not allowed.
+.ie n .IP "Cannot chr %f" 4
+.el .IP "Cannot chr \f(CW%f\fR" 4
+.IX Item "Cannot chr %f"
+(F) You passed an invalid number (like an infinity or not-a-number) to \f(CW\*(C`chr\*(C'\fR.
+.ie n .IP "Cannot complete in-place edit of %s: %s" 4
+.el .IP "Cannot complete in-place edit of \f(CW%s:\fR \f(CW%s\fR" 4
+.IX Item "Cannot complete in-place edit of %s: %s"
+(F) Your perl script appears to have changed directory while
+performing an in-place edit of a file specified by a relative path,
+and your system doesn't include the directory relative POSIX functions
+needed to handle that.
+.ie n .IP "Cannot compress %f in pack" 4
+.el .IP "Cannot compress \f(CW%f\fR in pack" 4
+.IX Item "Cannot compress %f in pack"
+(F) You tried compressing an infinity or not-a-number as an unsigned
+integer with BER, which makes no sense.
+.IP "Cannot compress integer in pack" 4
+.IX Item "Cannot compress integer in pack"
+(F) An argument to pack("w",...) was too large to compress.
+The BER compressed integer format can only be used with positive
+integers, and you attempted to compress a very large number (> 1e308).
+See "pack" in perlfunc.
+.IP "Cannot compress negative numbers in pack" 4
+.IX Item "Cannot compress negative numbers in pack"
+(F) An argument to pack("w",...) was negative. The BER compressed integer
+format can only be used with positive integers. See "pack" in perlfunc.
+.ie n .IP "Cannot convert a reference to %s to typeglob" 4
+.el .IP "Cannot convert a reference to \f(CW%s\fR to typeglob" 4
+.IX Item "Cannot convert a reference to %s to typeglob"
+(F) You manipulated Perl's symbol table directly, stored a reference
+in it, then tried to access that symbol via conventional Perl syntax.
+The access triggers Perl to autovivify that typeglob, but it there is
+no legal conversion from that type of reference to a typeglob.
+.ie n .IP "Cannot copy to %s" 4
+.el .IP "Cannot copy to \f(CW%s\fR" 4
+.IX Item "Cannot copy to %s"
+(P) Perl detected an attempt to copy a value to an internal type that cannot
+be directly assigned to.
+.ie n .IP "Cannot create class %s as it already has a non-empty @ISA" 4
+.el .IP "Cannot create class \f(CW%s\fR as it already has a non-empty \f(CW@ISA\fR" 4
+.IX Item "Cannot create class %s as it already has a non-empty @ISA"
+(F) An attempt was made to create a class out of a package that already has
+an \f(CW@ISA\fR array, and the array is not empty. This is not permitted, as it
+would lead to a class with inconsistent inheritance.
+.IP "Cannot find encoding ""%s""" 4
+.IX Item "Cannot find encoding ""%s"""
+(S io) You tried to apply an encoding that did not exist to a filehandle,
+either with \fBopen()\fR or \fBbinmode()\fR.
+.IP "Cannot invoke a method of ""%s"" on an instance of ""%s""" 4
+.IX Item "Cannot invoke a method of ""%s"" on an instance of ""%s"""
+(F) You tried to directly call a \f(CW\*(C`method\*(C'\fR subroutine of one class by passing
+in a value that is an instance of a different class. This is not permitted,
+as the method would not have access to the correct instance fields.
+.IP "Cannot invoke method on a non-instance" 4
+.IX Item "Cannot invoke method on a non-instance"
+(F) You tried to directly call a \f(CW\*(C`method\*(C'\fR subroutine of a class by passing
+in a value that is not an instance of that class. This is not permitted, as
+the method would not then have access to its instance fields.
+.ie n .IP "Cannot open %s as a dirhandle: it is already open as a filehandle" 4
+.el .IP "Cannot open \f(CW%s\fR as a dirhandle: it is already open as a filehandle" 4
+.IX Item "Cannot open %s as a dirhandle: it is already open as a filehandle"
+(F) You tried to use \fBopendir()\fR to associate a dirhandle to a symbol (glob
+or scalar) that already holds a filehandle. Since this idiom might render
+your code confusing, it was deprecated in Perl 5.10. As of Perl 5.28, it
+is a fatal error.
+.ie n .IP "Cannot open %s as a filehandle: it is already open as a dirhandle" 4
+.el .IP "Cannot open \f(CW%s\fR as a filehandle: it is already open as a dirhandle" 4
+.IX Item "Cannot open %s as a filehandle: it is already open as a dirhandle"
+(F) You tried to use \fBopen()\fR to associate a filehandle to a symbol (glob
+or scalar) that already holds a dirhandle. Since this idiom might render
+your code confusing, it was deprecated in Perl 5.10. As of Perl 5.28, it
+is a fatal error.
+.IP "Cannot '%s' outside of a 'class'" 4
+.IX Item "Cannot '%s' outside of a 'class'"
+(F) You attempted to use one of the keywords that only makes sense inside
+a \f(CW\*(C`class\*(C'\fR definition, at a location that is not inside such a class.
+.ie n .IP "Cannot pack %f with '%c'" 4
+.el .IP "Cannot pack \f(CW%f\fR with '%c'" 4
+.IX Item "Cannot pack %f with '%c'"
+(F) You tried converting an infinity or not-a-number to an integer,
+which makes no sense.
+.ie n .IP "Cannot printf %f with '%c'" 4
+.el .IP "Cannot printf \f(CW%f\fR with '%c'" 4
+.IX Item "Cannot printf %f with '%c'"
+(F) You tried printing an infinity or not-a-number as a character (%c),
+which makes no sense. Maybe you meant '%s', or just stringifying it?
+.IP "Cannot reopen existing class ""%s""" 4
+.IX Item "Cannot reopen existing class ""%s"""
+(F) You tried to begin a \f(CW\*(C`class\*(C'\fR definition for a class that already exists.
+A class may only have one definition block.
+.ie n .IP "Cannot set tied @DB::args" 4
+.el .IP "Cannot set tied \f(CW@DB::args\fR" 4
+.IX Item "Cannot set tied @DB::args"
+(F) \f(CW\*(C`caller\*(C'\fR tried to set \f(CW@DB::args\fR, but found it tied. Tying \f(CW@DB::args\fR
+is not supported. (Before this error was added, it used to crash.)
+.IP "Cannot tie unreifiable array" 4
+.IX Item "Cannot tie unreifiable array"
+(P) You somehow managed to call \f(CW\*(C`tie\*(C'\fR on an array that does not
+keep a reference count on its arguments and cannot be made to
+do so. Such arrays are not even supposed to be accessible to
+Perl code, but are only used internally.
+.IP "Cannot yet reorder \fBsv_vcatpvfn()\fR arguments from va_list" 4
+.IX Item "Cannot yet reorder sv_vcatpvfn() arguments from va_list"
+(F) Some XS code tried to use \f(CWsv_vcatpvfn()\fR or a related function with a
+format string that specifies explicit indexes for some of the elements, and
+using a C\-style variable-argument list (a \f(CW\*(C`va_list\*(C'\fR). This is not currently
+supported. XS authors wanting to do this must instead construct a C array
+of \f(CW\*(C`SV*\*(C'\fR scalars containing the arguments.
+.IP "Can only compress unsigned integers in pack" 4
+.IX Item "Can only compress unsigned integers in pack"
+(F) An argument to pack("w",...) was not an integer. The BER compressed
+integer format can only be used with positive integers, and you attempted
+to compress something else. See "pack" in perlfunc.
+.IP "Can't ""%s"" out of a ""defer"" block" 4
+.IX Item "Can't ""%s"" out of a ""defer"" block"
+(F) An attempt was made to jump out of the scope of a \f(CW\*(C`defer\*(C'\fR block by using
+a control-flow statement such as \f(CW\*(C`return\*(C'\fR, \f(CW\*(C`goto\*(C'\fR or a loop control. This is
+not permitted.
+.IP "Can't ""%s"" out of a ""finally"" block" 4
+.IX Item "Can't ""%s"" out of a ""finally"" block"
+(F) Similar to above, but involving a \f(CW\*(C`finally\*(C'\fR block at the end of a
+\&\f(CW\*(C`try\*(C'\fR/\f(CW\*(C`catch\*(C'\fR construction rather than a \f(CW\*(C`defer\*(C'\fR block.
+.IP "Can't bless an object reference" 4
+.IX Item "Can't bless an object reference"
+(F) You attempted to call \f(CW\*(C`bless\*(C'\fR on a value that already refers to a real
+object instance.
+.IP "Can't bless non-reference value" 4
+.IX Item "Can't bless non-reference value"
+(F) Only hard references may be blessed. This is how Perl "enforces"
+encapsulation of objects. See perlobj.
+.IP "Can't ""break"" in a loop topicalizer" 4
+.IX Item "Can't ""break"" in a loop topicalizer"
+(F) You called \f(CW\*(C`break\*(C'\fR, but you're in a \f(CW\*(C`foreach\*(C'\fR block rather than
+a \f(CW\*(C`given\*(C'\fR block. You probably meant to use \f(CW\*(C`next\*(C'\fR or \f(CW\*(C`last\*(C'\fR.
+.IP "Can't ""break"" outside a given block" 4
+.IX Item "Can't ""break"" outside a given block"
+(F) You called \f(CW\*(C`break\*(C'\fR, but you're not inside a \f(CW\*(C`given\*(C'\fR block.
+.IP "Can't call destructor for 0x%p in global destruction" 4
+.IX Item "Can't call destructor for 0x%p in global destruction"
+(S) This should not happen. Internals code has set up a destructor
+using \f(CW\*(C`mortal_destructor_sv\*(C'\fR or \f(CW\*(C`mortal_destructor_x\*(C'\fR which is firing
+during global destruction. Please attempt to reduce the code that triggers
+this warning down to a small an example as possible and then report the
+problem to <https://github.com/Perl/perl5/issues/new/choose>
+.IP "Can't call method ""%s"" on an undefined value" 4
+.IX Item "Can't call method ""%s"" on an undefined value"
+(F) You used the syntax of a method call, but the slot filled by the
+object reference or package name contains an undefined value. Something
+like this will reproduce the error:
+.Sp
+.Vb 3
+\& $BADREF = undef;
+\& process $BADREF 1,2,3;
+\& $BADREF\->process(1,2,3);
+.Ve
+.IP "Can't call method ""%s"" on unblessed reference" 4
+.IX Item "Can't call method ""%s"" on unblessed reference"
+(F) A method call must know in what package it's supposed to run. It
+ordinarily finds this out from the object reference you supply, but you
+didn't supply an object reference in this case. A reference isn't an
+object reference until it has been blessed. See perlobj.
+.IP "Can't call method ""%s"" without a package or object reference" 4
+.IX Item "Can't call method ""%s"" without a package or object reference"
+(F) You used the syntax of a method call, but the slot filled by the
+object reference or package name contains an expression that returns a
+defined value which is neither an object reference nor a package name.
+Something like this will reproduce the error:
+.Sp
+.Vb 3
+\& $BADREF = 42;
+\& process $BADREF 1,2,3;
+\& $BADREF\->process(1,2,3);
+.Ve
+.IP "Can't call \fBmro_isa_changed_in()\fR on anonymous symbol table" 4
+.IX Item "Can't call mro_isa_changed_in() on anonymous symbol table"
+(P) Perl got confused as to whether a hash was a plain hash or a
+symbol table hash when trying to update \f(CW@ISA\fR caches.
+.IP "Can't call \fBmro_method_changed_in()\fR on anonymous symbol table" 4
+.IX Item "Can't call mro_method_changed_in() on anonymous symbol table"
+(F) An XS module tried to call \f(CW\*(C`mro_method_changed_in\*(C'\fR on a hash that was
+not attached to the symbol table.
+.ie n .IP "Can't chdir to %s" 4
+.el .IP "Can't chdir to \f(CW%s\fR" 4
+.IX Item "Can't chdir to %s"
+(F) You called \f(CW\*(C`perl \-x/foo/bar\*(C'\fR, but \fI/foo/bar\fR is not a directory
+that you can chdir to, possibly because it doesn't exist.
+.ie n .IP "Can't coerce %s to %s in %s" 4
+.el .IP "Can't coerce \f(CW%s\fR to \f(CW%s\fR in \f(CW%s\fR" 4
+.IX Item "Can't coerce %s to %s in %s"
+(F) Certain types of SVs, in particular real symbol table entries
+(typeglobs), can't be forced to stop being what they are. So you can't
+say things like:
+.Sp
+.Vb 1
+\& *foo += 1;
+.Ve
+.Sp
+You CAN say
+.Sp
+.Vb 2
+\& $foo = *foo;
+\& $foo += 1;
+.Ve
+.Sp
+but then \f(CW$foo\fR no longer contains a glob.
+.IP "Can't ""continue"" outside a when block" 4
+.IX Item "Can't ""continue"" outside a when block"
+(F) You called \f(CW\*(C`continue\*(C'\fR, but you're not inside a \f(CW\*(C`when\*(C'\fR
+or \f(CW\*(C`default\*(C'\fR block.
+.IP "can't convert empty path" 4
+.IX Item "can't convert empty path"
+(F) On Cygwin, you called a path conversion function with an empty path.
+Only non-empty paths are legal.
+.IP "Can't create pipe mailbox" 4
+.IX Item "Can't create pipe mailbox"
+(P) An error peculiar to VMS. The process is suffering from exhausted
+quotas or other plumbing problems.
+.ie n .IP "Can't declare %s in ""%s""" 4
+.el .IP "Can't declare \f(CW%s\fR in ""%s""" 4
+.IX Item "Can't declare %s in ""%s"""
+(F) Only scalar, array, and hash variables may be declared as "my", "our" or
+"state" variables. They must have ordinary identifiers as names.
+.IP "Can't ""default"" outside a topicalizer" 4
+.IX Item "Can't ""default"" outside a topicalizer"
+(F) You have used a \f(CW\*(C`default\*(C'\fR block that is neither inside a
+\&\f(CW\*(C`foreach\*(C'\fR loop nor a \f(CW\*(C`given\*(C'\fR block. (Note that this error is
+issued on exit from the \f(CW\*(C`default\*(C'\fR block, so you won't get the
+error if you use an explicit \f(CW\*(C`continue\*(C'\fR.)
+.ie n .IP "Can't determine class of operator %s, assuming BASEOP" 4
+.el .IP "Can't determine class of operator \f(CW%s\fR, assuming BASEOP" 4
+.IX Item "Can't determine class of operator %s, assuming BASEOP"
+(S) This warning indicates something wrong in the internals of perl.
+Perl was trying to find the class (e.g. LISTOP) of a particular OP,
+and was unable to do so. This is likely to be due to a bug in the perl
+internals, or due to a bug in XS code which manipulates perl optrees.
+.ie n .IP "Can't do inplace edit: %s is not a regular file" 4
+.el .IP "Can't do inplace edit: \f(CW%s\fR is not a regular file" 4
+.IX Item "Can't do inplace edit: %s is not a regular file"
+(S inplace) You tried to use the \fB\-i\fR switch on a special file, such as
+a file in /dev, a FIFO or an uneditable directory. The file was ignored.
+.ie n .IP "Can't do inplace edit on %s: %s" 4
+.el .IP "Can't do inplace edit on \f(CW%s:\fR \f(CW%s\fR" 4
+.IX Item "Can't do inplace edit on %s: %s"
+(S inplace) The creation of the new file failed for the indicated
+reason.
+.ie n .IP "Can't do inplace edit: %s would not be unique" 4
+.el .IP "Can't do inplace edit: \f(CW%s\fR would not be unique" 4
+.IX Item "Can't do inplace edit: %s would not be unique"
+(S inplace) Your filesystem does not support filenames longer than 14
+characters and Perl was unable to create a unique filename during
+inplace editing with the \fB\-i\fR switch. The file was ignored.
+.IP "Can't do %s(""%s"") on non\-UTF\-8 locale; resolved to ""%s""." 4
+.IX Item "Can't do %s(""%s"") on non-UTF-8 locale; resolved to ""%s""."
+(W locale) You are 1) running under "\f(CW\*(C`use locale\*(C'\fR"; 2) the current
+locale is not a UTF\-8 one; 3) you tried to do the designated case-change
+operation on the specified Unicode character; and 4) the result of this
+operation would mix Unicode and locale rules, which likely conflict.
+Mixing of different rule types is forbidden, so the operation was not
+done; instead the result is the indicated value, which is the best
+available that uses entirely Unicode rules. That turns out to almost
+always be the original character, unchanged.
+.Sp
+It is generally a bad idea to mix non\-UTF\-8 locales and Unicode, and
+this issue is one of the reasons why. This warning is raised when
+Unicode rules would normally cause the result of this operation to
+contain a character that is in the range specified by the locale,
+0..255, and hence is subject to the locale's rules, not Unicode's.
+.Sp
+If you are using locale purely for its characteristics related to things
+like its numeric and time formatting (and not \f(CW\*(C`LC_CTYPE\*(C'\fR), consider
+using a restricted form of the locale pragma (see "The "use
+locale" pragma" in perllocale) like "\f(CW\*(C`use\ locale\ \*(Aq:not_characters\*(Aq\*(C'\fR".
+.Sp
+Note that failed case-changing operations done as a result of
+case-insensitive \f(CW\*(C`/i\*(C'\fR regular expression matching will show up in this
+warning as having the \f(CW\*(C`fc\*(C'\fR operation (as that is what the regular
+expression engine calls behind the scenes.)
+.IP "Can't do waitpid with flags" 4
+.IX Item "Can't do waitpid with flags"
+(F) This machine doesn't have either \fBwaitpid()\fR or \fBwait4()\fR, so only
+\&\fBwaitpid()\fR without flags is emulated.
+.IP "Can't emulate \-%s on #! line" 4
+.IX Item "Can't emulate -%s on #! line"
+(F) The #! line specifies a switch that doesn't make sense at this
+point. For example, it'd be kind of silly to put a \fB\-x\fR on the #!
+line.
+.ie n .IP "Can't %s %s\-endian %ss on this platform" 4
+.el .IP "Can't \f(CW%s\fR \f(CW%s\fR\-endian \f(CW%ss\fR on this platform" 4
+.IX Item "Can't %s %s-endian %ss on this platform"
+(F) Your platform's byte-order is neither big-endian nor little-endian,
+or it has a very strange pointer size. Packing and unpacking big\- or
+little-endian floating point values and pointers may not be possible.
+See "pack" in perlfunc.
+.ie n .IP "Can't exec ""%s"": %s" 4
+.el .IP "Can't exec ""%s"": \f(CW%s\fR" 4
+.IX Item "Can't exec ""%s"": %s"
+(W exec) A \fBsystem()\fR, \fBexec()\fR, or piped open call could not execute the
+named program for the indicated reason. Typical reasons include: the
+permissions were wrong on the file, the file wasn't found in
+\&\f(CW$ENV{PATH}\fR, the executable in question was compiled for another
+architecture, or the #! line in a script points to an interpreter that
+can't be run for similar reasons. (Or maybe your system doesn't support
+#! at all.)
+.ie n .IP "Can't exec %s" 4
+.el .IP "Can't exec \f(CW%s\fR" 4
+.IX Item "Can't exec %s"
+(F) Perl was trying to execute the indicated program for you because
+that's what the #! line said. If that's not what you wanted, you may
+need to mention "perl" on the #! line somewhere.
+.ie n .IP "Can't execute %s" 4
+.el .IP "Can't execute \f(CW%s\fR" 4
+.IX Item "Can't execute %s"
+(F) You used the \fB\-S\fR switch, but the copies of the script to execute
+found in the PATH did not have correct permissions.
+.IP "Can't find an opnumber for ""%s""" 4
+.IX Item "Can't find an opnumber for ""%s"""
+(F) A string of a form \f(CW\*(C`CORE::word\*(C'\fR was given to \fBprototype()\fR, but there
+is no builtin with the name \f(CW\*(C`word\*(C'\fR.
+.ie n .IP "Can't find label %s" 4
+.el .IP "Can't find label \f(CW%s\fR" 4
+.IX Item "Can't find label %s"
+(F) You said to goto a label that isn't mentioned anywhere that it's
+possible for us to go to. See "goto" in perlfunc.
+.ie n .IP "Can't find %s on PATH" 4
+.el .IP "Can't find \f(CW%s\fR on PATH" 4
+.IX Item "Can't find %s on PATH"
+(F) You used the \fB\-S\fR switch, but the script to execute could not be
+found in the PATH.
+.ie n .IP "Can't find %s on PATH, '.' not in PATH" 4
+.el .IP "Can't find \f(CW%s\fR on PATH, '.' not in PATH" 4
+.IX Item "Can't find %s on PATH, '.' not in PATH"
+(F) You used the \fB\-S\fR switch, but the script to execute could not be
+found in the PATH, or at least not with the correct permissions. The
+script exists in the current directory, but PATH prohibits running it.
+.ie n .IP "Can't find string terminator %s anywhere before EOF" 4
+.el .IP "Can't find string terminator \f(CW%s\fR anywhere before EOF" 4
+.IX Item "Can't find string terminator %s anywhere before EOF"
+(F) Perl strings can stretch over multiple lines. This message means
+that the closing delimiter was omitted. Because bracketed quotes count
+nesting levels, the following is missing its final parenthesis:
+.Sp
+.Vb 1
+\& print q(The character \*(Aq(\*(Aq starts a side comment.);
+.Ve
+.Sp
+If you're getting this error from a here-document, you may have
+included unseen whitespace before or after your closing tag or there
+may not be a linebreak after it. A good programmer's editor will have
+a way to help you find these characters (or lack of characters). See
+perlop for the full details on here-documents.
+.IP "Can't find Unicode property definition ""%s""" 4
+.IX Item "Can't find Unicode property definition ""%s"""
+.PD 0
+.IP "Can't find Unicode property definition ""%s"" in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Can't find Unicode property definition ""%s"" in regex; marked by <-- HERE in m/%s/"
+.PD
+(F) The named property which you specified via \f(CW\*(C`\ep\*(C'\fR or \f(CW\*(C`\eP\*(C'\fR is not one
+known to Perl. Perhaps you misspelled the name? See
+"Properties accessible through \ep{} and \eP{}" in perluniprops
+for a complete list of available official
+properties. If it is a
+user-defined property
+it must have been defined by the time the regular expression is
+matched.
+.Sp
+If you didn't mean to use a Unicode property, escape the \f(CW\*(C`\ep\*(C'\fR, either
+by \f(CW\*(C`\e\ep\*(C'\fR (just the \f(CW\*(C`\ep\*(C'\fR) or by \f(CW\*(C`\eQ\ep\*(C'\fR (the rest of the string, or
+until \f(CW\*(C`\eE\*(C'\fR).
+.ie n .IP "Can't fork: %s" 4
+.el .IP "Can't fork: \f(CW%s\fR" 4
+.IX Item "Can't fork: %s"
+(F) A fatal error occurred while trying to fork while opening a
+pipeline.
+.IP "Can't fork, trying again in 5 seconds" 4
+.IX Item "Can't fork, trying again in 5 seconds"
+(W pipe) A fork in a piped open failed with EAGAIN and will be retried
+after five seconds.
+.IP "Can't get filespec \- stale stat buffer?" 4
+.IX Item "Can't get filespec - stale stat buffer?"
+(S) A warning peculiar to VMS. This arises because of the difference
+between access checks under VMS and under the Unix model Perl assumes.
+Under VMS, access checks are done by filename, rather than by bits in
+the stat buffer, so that ACLs and other protections can be taken into
+account. Unfortunately, Perl assumes that the stat buffer contains all
+the necessary information, and passes it, instead of the filespec, to
+the access-checking routine. It will try to retrieve the filespec using
+the device name and FID present in the stat buffer, but this works only
+if you haven't made a subsequent call to the CRTL \fBstat()\fR routine,
+because the device name is overwritten with each call. If this warning
+appears, the name lookup failed, and the access-checking routine gave up
+and returned FALSE, just to be conservative. (Note: The access-checking
+routine knows about the Perl \f(CW\*(C`stat\*(C'\fR operator and file tests, so you
+shouldn't ever see this warning in response to a Perl command; it arises
+only if some internal code takes stat buffers lightly.)
+.IP "Can't get pipe mailbox device name" 4
+.IX Item "Can't get pipe mailbox device name"
+(P) An error peculiar to VMS. After creating a mailbox to act as a
+pipe, Perl can't retrieve its name for later use.
+.IP "Can't get SYSGEN parameter value for MAXBUF" 4
+.IX Item "Can't get SYSGEN parameter value for MAXBUF"
+(P) An error peculiar to VMS. Perl asked \f(CW$GETSYI\fR how big you want your
+mailbox buffers to be, and didn't get an answer.
+.IP "Can't ""goto"" into a binary or list expression" 4
+.IX Item "Can't ""goto"" into a binary or list expression"
+(F) A "goto" statement was executed to jump into the middle of a binary
+or list expression. You can't get there from here. The reason for this
+restriction is that the interpreter would get confused as to how many
+arguments there are, resulting in stack corruption or crashes. This
+error occurs in cases such as these:
+.Sp
+.Vb 2
+\& goto F;
+\& print do { F: }; # Can\*(Aqt jump into the arguments to print
+\&
+\& goto G;
+\& $x + do { G: $y }; # How is + supposed to get its first operand?
+.Ve
+.IP "Can't ""goto"" into a ""defer"" block" 4
+.IX Item "Can't ""goto"" into a ""defer"" block"
+(F) A \f(CW\*(C`goto\*(C'\fR statement was executed to jump into the scope of a \f(CW\*(C`defer\*(C'\fR
+block. This is not permitted.
+.IP "Can't ""goto"" into a ""given"" block" 4
+.IX Item "Can't ""goto"" into a ""given"" block"
+(F) A "goto" statement was executed to jump into the middle of a \f(CW\*(C`given\*(C'\fR
+block. You can't get there from here. See "goto" in perlfunc.
+.IP "Can't ""goto"" into the middle of a foreach loop" 4
+.IX Item "Can't ""goto"" into the middle of a foreach loop"
+(F) A "goto" statement was executed to jump into the middle of a foreach
+loop. You can't get there from here. See "goto" in perlfunc.
+.IP "Can't ""goto"" out of a pseudo block" 4
+.IX Item "Can't ""goto"" out of a pseudo block"
+(F) A "goto" statement was executed to jump out of what might look like
+a block, except that it isn't a proper block. This usually occurs if
+you tried to jump out of a \fBsort()\fR block or subroutine, which is a no-no.
+See "goto" in perlfunc.
+.IP "Can't goto subroutine from an eval\-%s" 4
+.IX Item "Can't goto subroutine from an eval-%s"
+(F) The "goto subroutine" call can't be used to jump out of an eval
+"string" or block.
+.IP "Can't goto subroutine from a sort sub (or similar callback)" 4
+.IX Item "Can't goto subroutine from a sort sub (or similar callback)"
+(F) The "goto subroutine" call can't be used to jump out of the
+comparison sub for a \fBsort()\fR, or from a similar callback (such
+as the \fBreduce()\fR function in List::Util).
+.IP "Can't goto subroutine outside a subroutine" 4
+.IX Item "Can't goto subroutine outside a subroutine"
+(F) The deeply magical "goto subroutine" call can only replace one
+subroutine call for another. It can't manufacture one out of whole
+cloth. In general you should be calling it out of only an AUTOLOAD
+routine anyway. See "goto" in perlfunc.
+.IP "Can't ignore signal CHLD, forcing to default" 4
+.IX Item "Can't ignore signal CHLD, forcing to default"
+(W signal) Perl has detected that it is being run with the SIGCHLD
+signal (sometimes known as SIGCLD) disabled. Since disabling this
+signal will interfere with proper determination of exit status of child
+processes, Perl has reset the signal to its default value. This
+situation typically indicates that the parent program under which Perl
+may be running (e.g. cron) is being very careless.
+.IP "Can't kill a non-numeric process ID" 4
+.IX Item "Can't kill a non-numeric process ID"
+(F) Process identifiers must be (signed) integers. It is a fatal error to
+attempt to \fBkill()\fR an undefined, empty-string or otherwise non-numeric
+process identifier.
+.IP "Can't ""last"" outside a loop block" 4
+.IX Item "Can't ""last"" outside a loop block"
+(F) A "last" statement was executed to break out of the current block,
+except that there's this itty bitty problem called there isn't a current
+block. Note that an "if" or "else" block doesn't count as a "loopish"
+block, as doesn't a block given to \fBsort()\fR, \fBmap()\fR or \fBgrep()\fR. You can
+usually double the curlies to get the same effect though, because the
+inner curlies will be considered a block that loops once. See
+"last" in perlfunc.
+.IP "Can't linearize anonymous symbol table" 4
+.IX Item "Can't linearize anonymous symbol table"
+(F) Perl tried to calculate the method resolution order (MRO) of a
+package, but failed because the package stash has no name.
+.ie n .IP "Can't load '%s' for module %s" 4
+.el .IP "Can't load '%s' for module \f(CW%s\fR" 4
+.IX Item "Can't load '%s' for module %s"
+(F) The module you tried to load failed to load a dynamic extension.
+This may either mean that you upgraded your version of perl to one
+that is incompatible with your old dynamic extensions (which is known
+to happen between major versions of perl), or (more likely) that your
+dynamic extension was built against an older version of the library
+that is installed on your system. You may need to rebuild your old
+dynamic extensions.
+.ie n .IP "Can't localize lexical variable %s" 4
+.el .IP "Can't localize lexical variable \f(CW%s\fR" 4
+.IX Item "Can't localize lexical variable %s"
+(F) You used local on a variable name that was previously declared as a
+lexical variable using "my" or "state". This is not allowed. If you
+want to localize a package variable of the same name, qualify it with
+the package name.
+.IP "Can't localize through a reference" 4
+.IX Item "Can't localize through a reference"
+(F) You said something like \f(CW\*(C`local $$ref\*(C'\fR, which Perl can't currently
+handle, because when it goes to restore the old value of whatever \f(CW$ref\fR
+pointed to after the scope of the \fBlocal()\fR is finished, it can't be sure
+that \f(CW$ref\fR will still be a reference.
+.ie n .IP "Can't locate %s" 4
+.el .IP "Can't locate \f(CW%s\fR" 4
+.IX Item "Can't locate %s"
+(F) You said to \f(CW\*(C`do\*(C'\fR (or \f(CW\*(C`require\*(C'\fR, or \f(CW\*(C`use\*(C'\fR) a file that couldn't be found.
+Perl looks for the file in all the locations mentioned in \f(CW@INC\fR, unless
+the file name included the full path to the file. Perhaps you need
+to set the PERL5LIB or PERL5OPT environment variable to say where the
+extra library is, or maybe the script needs to add the library name
+to \f(CW@INC\fR. Or maybe you just misspelled the name of the file. See
+"require" in perlfunc and lib.
+.ie n .IP "Can't locate auto/%s.al in @INC" 4
+.el .IP "Can't locate auto/%s.al in \f(CW@INC\fR" 4
+.IX Item "Can't locate auto/%s.al in @INC"
+(F) A function (or method) was called in a package which allows
+autoload, but there is no function to autoload. Most probable causes
+are a misprint in a function/method name or a failure to \f(CW\*(C`AutoSplit\*(C'\fR
+the file, say, by doing \f(CW\*(C`make install\*(C'\fR.
+.ie n .IP "Can't locate loadable object for module %s in @INC" 4
+.el .IP "Can't locate loadable object for module \f(CW%s\fR in \f(CW@INC\fR" 4
+.IX Item "Can't locate loadable object for module %s in @INC"
+(F) The module you loaded is trying to load an external library, like
+for example, \fIfoo.so\fR or \fIbar.dll\fR, but the DynaLoader module was
+unable to locate this library. See DynaLoader.
+.IP "Can't locate object method ""%s"" via package ""%s""" 4
+.IX Item "Can't locate object method ""%s"" via package ""%s"""
+(F) You called a method correctly, and it correctly indicated a package
+functioning as a class, but that package doesn't define that particular
+method, nor does any of its base classes. See perlobj.
+.IP "Can't locate object method ""%s"" via package ""%s"" (perhaps you forgot to load ""%s""?)" 4
+.IX Item "Can't locate object method ""%s"" via package ""%s"" (perhaps you forgot to load ""%s""?)"
+(F) You called a method on a class that did not exist, and the method
+could not be found in UNIVERSAL. This often means that a method
+requires a package that has not been loaded.
+.ie n .IP "Can't locate object method ""INC"", nor ""INCDIR"" nor string overload via package ""%s"" %s in @INC" 4
+.el .IP "Can't locate object method ""INC"", nor ""INCDIR"" nor string overload via package ""%s"" \f(CW%s\fR in \f(CW@INC\fR" 4
+.IX Item "Can't locate object method ""INC"", nor ""INCDIR"" nor string overload via package ""%s"" %s in @INC"
+(F) You pushed an object, either directly or via an array reference hook,
+into \f(CW@INC\fR, but the object doesn't support any known hook methods, nor
+a string overload and is also not a blessed CODE reference. In short the
+\&\f(CW\*(C`require\*(C'\fR function does not know what to do with the object.
+See also "require" in perlfunc.
+.ie n .IP "Can't locate package %s for @%s::ISA" 4
+.el .IP "Can't locate package \f(CW%s\fR for @%s::ISA" 4
+.IX Item "Can't locate package %s for @%s::ISA"
+(W syntax) The \f(CW@ISA\fR array contained the name of another package that
+doesn't seem to exist.
+.IP "Can't locate PerlIO%s" 4
+.IX Item "Can't locate PerlIO%s"
+(F) You tried to use in \fBopen()\fR a PerlIO layer that does not exist,
+e.g. open(FH, ">:nosuchlayer", "somefile").
+.ie n .IP "Can't make list assignment to %ENV on this system" 4
+.el .IP "Can't make list assignment to \f(CW%ENV\fR on this system" 4
+.IX Item "Can't make list assignment to %ENV on this system"
+(F) List assignment to \f(CW%ENV\fR is not supported on some systems, notably
+VMS.
+.ie n .IP "Can't make loaded symbols global on this platform while loading %s" 4
+.el .IP "Can't make loaded symbols global on this platform while loading \f(CW%s\fR" 4
+.IX Item "Can't make loaded symbols global on this platform while loading %s"
+(S) A module passed the flag 0x01 to \fBDynaLoader::dl_load_file()\fR to request
+that symbols from the stated file are made available globally within the
+process, but that functionality is not available on this platform. Whilst
+the module likely will still work, this may prevent the perl interpreter
+from loading other XS-based extensions which need to link directly to
+functions defined in the C or XS code in the stated file.
+.ie n .IP "Can't modify %s in %s" 4
+.el .IP "Can't modify \f(CW%s\fR in \f(CW%s\fR" 4
+.IX Item "Can't modify %s in %s"
+(F) You aren't allowed to assign to the item indicated, or otherwise try
+to change it, such as with an auto-increment.
+.IP "Can't modify non-lvalue subroutine call of &%s" 4
+.IX Item "Can't modify non-lvalue subroutine call of &%s"
+.PD 0
+.ie n .IP "Can't modify non-lvalue subroutine call of &%s in %s" 4
+.el .IP "Can't modify non-lvalue subroutine call of &%s in \f(CW%s\fR" 4
+.IX Item "Can't modify non-lvalue subroutine call of &%s in %s"
+.PD
+(F) Subroutines meant to be used in lvalue context should be declared as
+such. See "Lvalue subroutines" in perlsub.
+.ie n .IP "Can't modify reference to %s in %s assignment" 4
+.el .IP "Can't modify reference to \f(CW%s\fR in \f(CW%s\fR assignment" 4
+.IX Item "Can't modify reference to %s in %s assignment"
+(F) Only a limited number of constructs can be used as the argument to a
+reference constructor on the left-hand side of an assignment, and what
+you used was not one of them. See "Assigning to References" in perlref.
+.IP "Can't modify reference to localized parenthesized array in list assignment" 4
+.IX Item "Can't modify reference to localized parenthesized array in list assignment"
+(F) Assigning to \f(CW\*(C`\elocal(@array)\*(C'\fR or \f(CW\*(C`\e(local @array)\*(C'\fR is not supported, as
+it is not clear exactly what it should do. If you meant to make \f(CW@array\fR
+refer to some other array, use \f(CW\*(C`\e@array = \e@other_array\*(C'\fR. If you want to
+make the elements of \f(CW@array\fR aliases of the scalars referenced on the
+right-hand side, use \f(CW\*(C`\e(@array) = @scalar_refs\*(C'\fR.
+.IP "Can't modify reference to parenthesized hash in list assignment" 4
+.IX Item "Can't modify reference to parenthesized hash in list assignment"
+(F) Assigning to \f(CW\*(C`\e(%hash)\*(C'\fR is not supported. If you meant to make \f(CW%hash\fR
+refer to some other hash, use \f(CW\*(C`\e%hash = \e%other_hash\*(C'\fR. If you want to
+make the elements of \f(CW%hash\fR into aliases of the scalars referenced on the
+right-hand side, use a hash slice: \f(CW\*(C`\e@hash{@keys} = @those_scalar_refs\*(C'\fR.
+.IP "Can't msgrcv to read-only var" 4
+.IX Item "Can't msgrcv to read-only var"
+(F) The target of a msgrcv must be modifiable to be used as a receive
+buffer.
+.IP "Can't ""next"" outside a loop block" 4
+.IX Item "Can't ""next"" outside a loop block"
+(F) A "next" statement was executed to reiterate the current block, but
+there isn't a current block. Note that an "if" or "else" block doesn't
+count as a "loopish" block, as doesn't a block given to \fBsort()\fR, \fBmap()\fR or
+\&\fBgrep()\fR. You can usually double the curlies to get the same effect
+though, because the inner curlies will be considered a block that loops
+once. See "next" in perlfunc.
+.ie n .IP "Can't open %s: %s" 4
+.el .IP "Can't open \f(CW%s:\fR \f(CW%s\fR" 4
+.IX Item "Can't open %s: %s"
+(S inplace) The implicit opening of a file through use of the \f(CW\*(C`<>\*(C'\fR
+filehandle, either implicitly under the \f(CW\*(C`\-n\*(C'\fR or \f(CW\*(C`\-p\*(C'\fR command-line
+switches, or explicitly, failed for the indicated reason. Usually
+this is because you don't have read permission for a file which
+you named on the command line.
+.Sp
+(F) You tried to call perl with the \fB\-e\fR switch, but \fI/dev/null\fR (or
+your operating system's equivalent) could not be opened.
+.IP "Can't open a reference" 4
+.IX Item "Can't open a reference"
+(W io) You tried to open a scalar reference for reading or writing,
+using the 3\-arg \fBopen()\fR syntax:
+.Sp
+.Vb 1
+\& open FH, \*(Aq>\*(Aq, $ref;
+.Ve
+.Sp
+but your version of perl is compiled without perlio, and this form of
+open is not supported.
+.IP "Can't open bidirectional pipe" 4
+.IX Item "Can't open bidirectional pipe"
+(W pipe) You tried to say \f(CW\*(C`open(CMD, "|cmd|")\*(C'\fR, which is not supported.
+You can try any of several modules in the Perl library to do this, such
+as IPC::Open2. Alternately, direct the pipe's output to a file using
+">", and then read it in under a different file handle.
+.ie n .IP "Can't open error file %s as stderr" 4
+.el .IP "Can't open error file \f(CW%s\fR as stderr" 4
+.IX 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.
+.ie n .IP "Can't open input file %s as stdin" 4
+.el .IP "Can't open input file \f(CW%s\fR as stdin" 4
+.IX 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.
+.ie n .IP "Can't open output file %s as stdout" 4
+.el .IP "Can't open output file \f(CW%s\fR as stdout" 4
+.IX 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.
+.ie n .IP "Can't open output pipe (name: %s)" 4
+.el .IP "Can't open output pipe (name: \f(CW%s\fR)" 4
+.IX Item "Can't open output pipe (name: %s)"
+(P) An error peculiar to VMS. Perl does its own command line
+redirection, and couldn't open the pipe into which to send data destined
+for stdout.
+.ie n .IP "Can't open perl script ""%s"": %s" 4
+.el .IP "Can't open perl script ""%s"": \f(CW%s\fR" 4
+.IX Item "Can't open perl script ""%s"": %s"
+(F) The script you specified can't be opened for the indicated reason.
+.Sp
+If you're debugging a script that uses #!, and normally relies on the
+shell's \f(CW$PATH\fR search, the \-S option causes perl to do that search, so
+you don't have to type the path or \f(CW\`which $scriptname\`\fR.
+.IP "Can't read CRTL environ" 4
+.IX Item "Can't read CRTL environ"
+(S) A warning peculiar to VMS. Perl tried to read an element of \f(CW%ENV\fR
+from the CRTL's internal environment array and discovered the array was
+missing. You need to figure out where your CRTL misplaced its environ
+or define \fIPERL_ENV_TABLES\fR (see perlvms) so that environ is not
+searched.
+.IP "Can't redeclare ""%s"" in ""%s""" 4
+.IX Item "Can't redeclare ""%s"" in ""%s"""
+(F) A "my", "our" or "state" declaration was found within another declaration,
+such as \f(CW\*(C`my ($x, my($y), $z)\*(C'\fR or \f(CW\*(C`our (my $x)\*(C'\fR.
+.IP "Can't ""redo"" outside a loop block" 4
+.IX Item "Can't ""redo"" outside a loop block"
+(F) A "redo" statement was executed to restart the current block, but
+there isn't a current block. Note that an "if" or "else" block doesn't
+count as a "loopish" block, as doesn't a block given to \fBsort()\fR, \fBmap()\fR
+or \fBgrep()\fR. You can usually double the curlies to get the same effect
+though, because the inner curlies will be considered a block that
+loops once. See "redo" in perlfunc.
+.ie n .IP "Can't remove %s: %s, skipping file" 4
+.el .IP "Can't remove \f(CW%s:\fR \f(CW%s\fR, skipping file" 4
+.IX Item "Can't remove %s: %s, skipping file"
+(S inplace) You requested an inplace edit without creating a backup
+file. Perl was unable to remove the original file to replace it with
+the modified file. The file was left unmodified.
+.ie n .IP "Can't rename in-place work file '%s' to '%s': %s" 4
+.el .IP "Can't rename in-place work file '%s' to '%s': \f(CW%s\fR" 4
+.IX Item "Can't rename in-place work file '%s' to '%s': %s"
+(F) When closed implicitly, the temporary file for in-place editing
+couldn't be renamed to the original filename.
+.ie n .IP "Can't rename %s to %s: %s, skipping file" 4
+.el .IP "Can't rename \f(CW%s\fR to \f(CW%s:\fR \f(CW%s\fR, skipping file" 4
+.IX Item "Can't rename %s to %s: %s, skipping file"
+(F) The rename done by the \fB\-i\fR switch failed for some reason,
+probably because you don't have write permission to the directory.
+.ie n .IP "Can't reopen input pipe (name: %s) in binary mode" 4
+.el .IP "Can't reopen input pipe (name: \f(CW%s\fR) in binary mode" 4
+.IX Item "Can't reopen input pipe (name: %s) in binary mode"
+(P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried
+to reopen it to accept binary data. Alas, it failed.
+.IP "Can't represent character for Ox%X on this platform" 4
+.IX Item "Can't represent character for Ox%X on this platform"
+(F) There is a hard limit to how big a character code point can be due
+to the fundamental properties of UTF\-8, especially on EBCDIC
+platforms. The given code point exceeds that. The only work-around is
+to not use such a large code point.
+.ie n .IP "Can't reset %ENV on this system" 4
+.el .IP "Can't reset \f(CW%ENV\fR on this system" 4
+.IX Item "Can't reset %ENV on this system"
+(F) You called \f(CWreset(\*(AqE\*(Aq)\fR or similar, which tried to reset
+all variables in the current package beginning with "E". In
+the main package, that includes \f(CW%ENV\fR. Resetting \f(CW%ENV\fR is not
+supported on some systems, notably VMS.
+.IP "Can't resolve method ""%s"" overloading ""%s"" in package ""%s""" 4
+.IX Item "Can't resolve method ""%s"" overloading ""%s"" in package ""%s"""
+(F)(P) Error resolving overloading specified by a method name (as
+opposed to a subroutine reference): no such method callable via the
+package. If the method name is \f(CW\*(C`???\*(C'\fR, this is an internal error.
+.ie n .IP "Can't return %s from lvalue subroutine" 4
+.el .IP "Can't return \f(CW%s\fR from lvalue subroutine" 4
+.IX Item "Can't return %s from lvalue subroutine"
+(F) Perl detected an attempt to return illegal lvalues (such as
+temporary or readonly values) from a subroutine used as an lvalue. This
+is not allowed.
+.IP "Can't return outside a subroutine" 4
+.IX Item "Can't return outside a subroutine"
+(F) The return statement was executed in mainline code, that is, where
+there was no subroutine call to return out of. See perlsub.
+.ie n .IP "Can't return %s to lvalue scalar context" 4
+.el .IP "Can't return \f(CW%s\fR to lvalue scalar context" 4
+.IX Item "Can't return %s to lvalue scalar context"
+(F) You tried to return a complete array or hash from an lvalue
+subroutine, but you called the subroutine in a way that made Perl
+think you meant to return only one value. You probably meant to
+write parentheses around the call to the subroutine, which tell
+Perl that the call should be in list context.
+.ie n .IP "Can't take log of %g" 4
+.el .IP "Can't take log of \f(CW%g\fR" 4
+.IX Item "Can't take log of %g"
+(F) For ordinary real numbers, you can't take the logarithm of a
+negative number or zero. There's a Math::Complex package that comes
+standard with Perl, though, if you really want to do that for the
+negative numbers.
+.ie n .IP "Can't take sqrt of %g" 4
+.el .IP "Can't take sqrt of \f(CW%g\fR" 4
+.IX Item "Can't take sqrt of %g"
+(F) For ordinary real numbers, you can't take the square root of a
+negative number. There's a Math::Complex package that comes standard
+with Perl, though, if you really want to do that.
+.IP "Can't undef active subroutine" 4
+.IX Item "Can't undef active subroutine"
+(F) You can't undefine a routine that's currently running. You can,
+however, redefine it while it's running, and you can even undef the
+redefined subroutine while the old routine is running. Go figure.
+.IP "Can't unweaken a nonreference" 4
+.IX Item "Can't unweaken a nonreference"
+(F) You attempted to unweaken something that was not a reference. Only
+references can be unweakened.
+.ie n .IP "Can't upgrade %s (%d) to %d" 4
+.el .IP "Can't upgrade \f(CW%s\fR (%d) to \f(CW%d\fR" 4
+.IX Item "Can't upgrade %s (%d) to %d"
+(P) The internal sv_upgrade routine adds "members" to an SV, making it
+into a more specialized kind of SV. The top several SV types are so
+specialized, however, that they cannot be interconverted. This message
+indicates that such a conversion was attempted.
+.IP "Can't use '%c' after \-mname" 4
+.IX Item "Can't use '%c' after -mname"
+(F) You tried to call perl with the \fB\-m\fR switch, but you put something
+other than "=" after the module name.
+.IP "Can't use a hash as a reference" 4
+.IX Item "Can't use a hash as a reference"
+(F) You tried to use a hash as a reference, as in
+\&\f(CW\*(C`%foo\->{"bar"}\*(C'\fR or \f(CW\*(C`%$ref\->{"hello"}\*(C'\fR. Versions of perl
+<= 5.22.0 used to allow this syntax, but shouldn't
+have. This was deprecated in perl 5.6.1.
+.IP "Can't use an array as a reference" 4
+.IX Item "Can't use an array as a reference"
+(F) You tried to use an array as a reference, as in
+\&\f(CW\*(C`@foo\->[23]\*(C'\fR or \f(CW\*(C`@$ref\->[99]\*(C'\fR. Versions of perl <= 5.22.0
+used to allow this syntax, but shouldn't have. This
+was deprecated in perl 5.6.1.
+.IP "Can't use anonymous symbol table for method lookup" 4
+.IX Item "Can't use anonymous symbol table for method lookup"
+(F) The internal routine that does method lookup was handed a symbol
+table that doesn't have a name. Symbol tables can become anonymous
+for example by undefining stashes: \f(CW\*(C`undef %Some::Package::\*(C'\fR.
+.ie n .IP "Can't use an undefined value as %s reference" 4
+.el .IP "Can't use an undefined value as \f(CW%s\fR reference" 4
+.IX Item "Can't use an undefined value as %s reference"
+(F) A value used as either a hard reference or a symbolic reference must
+be a defined value. This helps to delurk some insidious errors.
+.ie n .IP "Can't use bareword (""%s"") as %s ref while ""strict refs"" in use" 4
+.el .IP "Can't use bareword (""%s"") as \f(CW%s\fR ref while ""strict refs"" in use" 4
+.IX Item "Can't use bareword (""%s"") as %s ref while ""strict refs"" in use"
+(F) Only hard references are allowed by "strict refs". Symbolic
+references are disallowed. See perlref.
+.IP "Can't use %! because Errno.pm is not available" 4
+.IX Item "Can't use %! because Errno.pm is not available"
+(F) The first time the \f(CW\*(C`%!\*(C'\fR hash is used, perl automatically loads the
+Errno.pm module. The Errno module is expected to tie the %! hash to
+provide symbolic names for \f(CW$!\fR errno values.
+.ie n .IP "Can't use both '<' and '>' after type '%c' in %s" 4
+.el .IP "Can't use both '<' and '>' after type '%c' in \f(CW%s\fR" 4
+.IX Item "Can't use both '<' and '>' after type '%c' in %s"
+(F) A type cannot be forced to have both big-endian and little-endian
+byte-order at the same time, so this combination of modifiers is not
+allowed. See "pack" in perlfunc.
+.IP "Can't use 'defined(@array)' (Maybe you should just omit the \fBdefined()\fR?)" 4
+.IX Item "Can't use 'defined(@array)' (Maybe you should just omit the defined()?)"
+(F) \fBdefined()\fR is not useful on arrays because it
+checks for an undefined \fIscalar\fR value. If you want to see if the
+array is empty, just use \f(CW\*(C`if (@array) { # not empty }\*(C'\fR for example.
+.IP "Can't use 'defined(%hash)' (Maybe you should just omit the \fBdefined()\fR?)" 4
+.IX Item "Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)"
+(F) \f(CWdefined()\fR is not usually right on hashes.
+.Sp
+Although \f(CW\*(C`defined %hash\*(C'\fR is false on a plain not-yet-used hash, it
+becomes true in several non-obvious circumstances, including iterators,
+weak references, stash names, even remaining true after \f(CW\*(C`undef %hash\*(C'\fR.
+These things make \f(CW\*(C`defined %hash\*(C'\fR fairly useless in practice, so it now
+generates a fatal error.
+.Sp
+If a check for non-empty is what you wanted then just put it in boolean
+context (see "Scalar values" in perldata):
+.Sp
+.Vb 3
+\& if (%hash) {
+\& # not empty
+\& }
+.Ve
+.Sp
+If you had \f(CW\*(C`defined %Foo::Bar::QUUX\*(C'\fR to check whether such a package
+variable exists then that's never really been reliable, and isn't
+a good way to enquire about the features of a package, or whether
+it's loaded, etc.
+.ie n .IP "Can't use %s for loop variable" 4
+.el .IP "Can't use \f(CW%s\fR for loop variable" 4
+.IX Item "Can't use %s for loop variable"
+(P) The parser got confused when trying to parse a \f(CW\*(C`foreach\*(C'\fR loop.
+.ie n .IP "Can't use global %s in %s" 4
+.el .IP "Can't use global \f(CW%s\fR in \f(CW%s\fR" 4
+.IX Item "Can't use global %s in %s"
+(F) You tried to declare a magical variable as a lexical variable. This
+is not allowed, because the magic can be tied to only one location
+(namely the global variable) and it would be incredibly confusing to
+have variables in your program that looked like magical variables but
+weren't.
+.ie n .IP "Can't use '%c' in a group with different byte-order in %s" 4
+.el .IP "Can't use '%c' in a group with different byte-order in \f(CW%s\fR" 4
+.IX Item "Can't use '%c' in a group with different byte-order in %s"
+(F) You attempted to force a different byte-order on a type
+that is already inside a group with a byte-order modifier.
+For example you cannot force little-endianness on a type that
+is inside a big-endian group.
+.ie n .IP "Can't use ""my %s"" in sort comparison" 4
+.el .IP "Can't use ""my \f(CW%s\fR"" in sort comparison" 4
+.IX Item "Can't use ""my %s"" in sort comparison"
+(F) The global variables \f(CW$a\fR and \f(CW$b\fR are reserved for sort comparisons.
+You mentioned \f(CW$a\fR or \f(CW$b\fR in the same line as the <=> 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.
+.ie n .IP "Can't use %s ref as %s ref" 4
+.el .IP "Can't use \f(CW%s\fR ref as \f(CW%s\fR ref" 4
+.IX Item "Can't use %s ref as %s ref"
+(F) You've mixed up your reference types. You have to dereference a
+reference of the type needed. You can use the \fBref()\fR function to
+test the type of the reference, if need be.
+.ie n .IP "Can't use string (""%s"") as %s ref while ""strict refs"" in use" 4
+.el .IP "Can't use string (""%s"") as \f(CW%s\fR ref while ""strict refs"" in use" 4
+.IX Item "Can't use string (""%s"") as %s ref while ""strict refs"" in use"
+.PD 0
+.ie n .IP "Can't use string (""%s""...) as %s ref while ""strict refs"" in use" 4
+.el .IP "Can't use string (""%s""...) as \f(CW%s\fR ref while ""strict refs"" in use" 4
+.IX Item "Can't use string (""%s""...) as %s ref while ""strict refs"" in use"
+.PD
+(F) You've told Perl to dereference a string, something which
+\&\f(CW\*(C`use strict\*(C'\fR blocks to prevent it happening accidentally. See
+"Symbolic references" in perlref. This can be triggered by an \f(CW\*(C`@\*(C'\fR or \f(CW\*(C`$\*(C'\fR
+in a double-quoted string immediately before interpolating a variable,
+for example in \f(CW"user @$twitter_id"\fR, which says to treat the contents
+of \f(CW$twitter_id\fR as an array reference; use a \f(CW\*(C`\e\*(C'\fR to have a literal \f(CW\*(C`@\*(C'\fR
+symbol followed by the contents of \f(CW$twitter_id\fR: \f(CW"user \e@$twitter_id"\fR.
+.ie n .IP "Can't use subscript on %s" 4
+.el .IP "Can't use subscript on \f(CW%s\fR" 4
+.IX Item "Can't use subscript on %s"
+(F) The compiler tried to interpret a bracketed expression as a
+subscript. But to the left of the brackets was an expression that
+didn't look like a hash or array reference, or anything else subscriptable.
+.IP "Can't use \e%c to mean $%c in expression" 4
+.IX Item "Can't use %c to mean $%c in expression"
+(W syntax) In an ordinary expression, backslash is a unary operator that
+creates a reference to its argument. The use of backslash to indicate a
+backreference to a matched substring is valid only as part of a regular
+expression pattern. Trying to do this in ordinary Perl code produces a
+value that prints out looking like \fBSCALAR\fR\|(0xdecaf). Use the \f(CW$1\fR form
+instead.
+.IP "Can't weaken a nonreference" 4
+.IX Item "Can't weaken a nonreference"
+(F) You attempted to weaken something that was not a reference. Only
+references can be weakened.
+.IP "Can't ""when"" outside a topicalizer" 4
+.IX Item "Can't ""when"" outside a topicalizer"
+(F) You have used a \fBwhen()\fR block that is neither inside a \f(CW\*(C`foreach\*(C'\fR
+loop nor a \f(CW\*(C`given\*(C'\fR block. (Note that this error is issued on exit
+from the \f(CW\*(C`when\*(C'\fR block, so you won't get the error if the match fails,
+or if you use an explicit \f(CW\*(C`continue\*(C'\fR.)
+.IP "Can't x= to read-only value" 4
+.IX Item "Can't x= to read-only value"
+(F) You tried to repeat a constant value (often the undefined value)
+with an assignment operator, which implies modifying the value itself.
+Perhaps you need to copy the value to a temporary, and repeat that.
+.IP "catch block requires a (VAR)" 4
+.IX Item "catch block requires a (VAR)"
+(F) You tried to use the \f(CW\*(C`try\*(C'\fR and \f(CW\*(C`catch\*(C'\fR syntax of \f(CW\*(C`use feature \*(Aqtry\*(Aq\*(C'\fR
+but did not include the error variable in the \f(CW\*(C`catch\*(C'\fR block. The
+parenthesized variable name is not optional, unlike in some other forms of
+syntax you may be familiar with from CPAN modules or other languages.
+.Sp
+The required syntax is
+.Sp
+.Vb 2
+\& try { ... }
+\& catch ($var) { ... }
+.Ve
+.IP "Character following ""\ec"" must be printable ASCII" 4
+.IX Item "Character following ""c"" must be printable ASCII"
+(F) In \f(CW\*(C`\ec\fR\f(CIX\fR\f(CW\*(C'\fR, \fIX\fR must be a printable (non-control) ASCII character.
+.Sp
+Note that ASCII characters that don't map to control characters are
+discouraged, and will generate the warning (when enabled)
+""\ec%c" is more clearly written simply as "%s"".
+.IP "Character following \e%c must be '{' or a single-character Unicode property name in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Character following %c must be '{' or a single-character Unicode property name in regex; marked by <-- HERE in m/%s/"
+(F) (In the above the \f(CW%c\fR is replaced by either \f(CW\*(C`p\*(C'\fR or \f(CW\*(C`P\*(C'\fR.) You
+specified something that isn't a legal Unicode property name. Most
+Unicode properties are specified by \f(CW\*(C`\ep{...}\*(C'\fR. But if the name is a
+single character one, the braces may be omitted.
+.IP "Character in 'C' format wrapped in pack" 4
+.IX Item "Character in 'C' format wrapped in pack"
+(W pack) You said
+.Sp
+.Vb 1
+\& pack("C", $x)
+.Ve
+.Sp
+where \f(CW$x\fR is either less than 0 or more than 255; the \f(CW"C"\fR format is
+only for encoding native operating system characters (ASCII, EBCDIC,
+and so on) and not for Unicode characters, so Perl behaved as if you meant
+.Sp
+.Vb 1
+\& pack("C", $x & 255)
+.Ve
+.Sp
+If you actually want to pack Unicode codepoints, use the \f(CW"U"\fR format
+instead.
+.IP "Character in 'c' format wrapped in pack" 4
+.IX Item "Character in 'c' format wrapped in pack"
+(W pack) You said
+.Sp
+.Vb 1
+\& pack("c", $x)
+.Ve
+.Sp
+where \f(CW$x\fR is either less than \-128 or more than 127; the \f(CW"c"\fR format
+is only for encoding native operating system characters (ASCII, EBCDIC,
+and so on) and not for Unicode characters, so Perl behaved as if you meant
+.Sp
+.Vb 1
+\& pack("c", $x & 255);
+.Ve
+.Sp
+If you actually want to pack Unicode codepoints, use the \f(CW"U"\fR format
+instead.
+.IP "Character in '%c' format wrapped in unpack" 4
+.IX Item "Character in '%c' format wrapped in unpack"
+(W unpack) You tried something like
+.Sp
+.Vb 1
+\& unpack("H", "\ex{2a1}")
+.Ve
+.Sp
+where the format expects to process a byte (a character with a value
+below 256), but a higher value was provided instead. Perl uses the
+value modulus 256 instead, as if you had provided:
+.Sp
+.Vb 1
+\& unpack("H", "\ex{a1}")
+.Ve
+.IP "Character in 'W' format wrapped in pack" 4
+.IX Item "Character in 'W' format wrapped in pack"
+(W pack) You said
+.Sp
+.Vb 1
+\& pack("U0W", $x)
+.Ve
+.Sp
+where \f(CW$x\fR is either less than 0 or more than 255. However, \f(CW\*(C`U0\*(C'\fR\-mode
+expects all values to fall in the interval [0, 255], so Perl behaved
+as if you meant:
+.Sp
+.Vb 1
+\& pack("U0W", $x & 255)
+.Ve
+.IP "Character(s) in '%c' format wrapped in pack" 4
+.IX Item "Character(s) in '%c' format wrapped in pack"
+(W pack) You tried something like
+.Sp
+.Vb 1
+\& pack("u", "\ex{1f3}b")
+.Ve
+.Sp
+where the format expects to process a sequence of bytes (character with a
+value below 256), but some of the characters had a higher value. Perl
+uses the character values modulus 256 instead, as if you had provided:
+.Sp
+.Vb 1
+\& pack("u", "\ex{f3}b")
+.Ve
+.IP "Character(s) in '%c' format wrapped in unpack" 4
+.IX Item "Character(s) in '%c' format wrapped in unpack"
+(W unpack) You tried something like
+.Sp
+.Vb 1
+\& unpack("s", "\ex{1f3}b")
+.Ve
+.Sp
+where the format expects to process a sequence of bytes (character with a
+value below 256), but some of the characters had a higher value. Perl
+uses the character values modulus 256 instead, as if you had provided:
+.Sp
+.Vb 1
+\& unpack("s", "\ex{f3}b")
+.Ve
+.ie n .IP "charnames alias definitions may not contain a sequence of multiple spaces; marked by <\-\-\ HERE in %s" 4
+.el .IP "charnames alias definitions may not contain a sequence of multiple spaces; marked by <\-\-\ HERE in \f(CW%s\fR" 4
+.IX Item "charnames alias definitions may not contain a sequence of multiple spaces; marked by <--\ HERE in %s"
+(F) You defined a character name which had multiple space characters
+in a row. Change them to single spaces. Usually these names are
+defined in the \f(CW\*(C`:alias\*(C'\fR import argument to \f(CW\*(C`use charnames\*(C'\fR, but they
+could be defined by a translator installed into \f(CW$^H{charnames}\fR. See
+"CUSTOM ALIASES" in charnames.
+.ie n .IP "\fBchdir()\fR on unopened filehandle %s" 4
+.el .IP "\fBchdir()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "chdir() on unopened filehandle %s"
+(W unopened) You tried \fBchdir()\fR on a filehandle that was never opened.
+.IP """\ec%c"" is more clearly written simply as ""%s""" 4
+.IX Item """c%c"" is more clearly written simply as ""%s"""
+(W syntax) The \f(CW\*(C`\ec\fR\f(CIX\fR\f(CW\*(C'\fR construct is intended to be a way to specify
+non-printable characters. You used it for a printable one, which
+is better written as simply itself, perhaps preceded by a backslash
+for non-word characters. Doing it the way you did is not portable
+between ASCII and EBCDIC platforms.
+.IP "Class already has a superclass, cannot add another" 4
+.IX Item "Class already has a superclass, cannot add another"
+(F) You attempted to specify a second superclass for a \f(CW\*(C`class\*(C'\fR by using
+the \f(CW\*(C`:isa\*(C'\fR attribute, when one is already specified. Unlike classes
+whose instances are created with \f(CW\*(C`bless\*(C'\fR, classes created via the
+\&\f(CW\*(C`class\*(C'\fR keyword cannot have more than one superclass.
+.ie n .IP "Class attribute %s requires a value" 4
+.el .IP "Class attribute \f(CW%s\fR requires a value" 4
+.IX Item "Class attribute %s requires a value"
+(F) You specified an attribute for a class that would require a value to
+be passed in parentheses, but did not provide one. Remember that
+whitespace is \fBnot\fR permitted between the attribute name and its value;
+you must write this as
+.Sp
+.Vb 1
+\& class Example::Class :attr(VALUE) ...
+.Ve
+.IP "class is experimental" 4
+.IX Item "class is experimental"
+(S experimental::class) This warning is emitted if you use the \f(CW\*(C`class\*(C'\fR
+keyword of \f(CW\*(C`use feature \*(Aqclass\*(Aq\*(C'\fR. This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+.IP "Class :isa attribute requires a class but ""%s"" is not one" 4
+.IX Item "Class :isa attribute requires a class but ""%s"" is not one"
+(F) When creating a subclass using the \f(CW\*(C`class\*(C'\fR \f(CW\*(C`:isa\*(C'\fR attribute, the
+named superclass must also be a real class created using the \f(CW\*(C`class\*(C'\fR
+keyword.
+.IP "Cloning substitution context is unimplemented" 4
+.IX Item "Cloning substitution context is unimplemented"
+(F) Creating a new thread inside the \f(CW\*(C`s///\*(C'\fR operator is not supported.
+.ie n .IP "\fBclosedir()\fR attempted on invalid dirhandle %s" 4
+.el .IP "\fBclosedir()\fR attempted on invalid dirhandle \f(CW%s\fR" 4
+.IX Item "closedir() attempted on invalid dirhandle %s"
+(W io) The dirhandle you tried to close is either closed or not really
+a dirhandle. Check your control flow.
+.ie n .IP "\fBclose()\fR on unopened filehandle %s" 4
+.el .IP "\fBclose()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "close() on unopened filehandle %s"
+(W unopened) You tried to close a filehandle that was never opened.
+.IP "Closure prototype called" 4
+.IX Item "Closure prototype called"
+(F) If a closure has attributes, the subroutine passed to an attribute
+handler is the prototype that is cloned when a new closure is created.
+This subroutine cannot be called.
+.IP "\eC no longer supported in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "C no longer supported in regex; marked by <--\ HERE in m/%s/"
+(F) The \eC character class used to allow a match of single byte
+within a multi-byte utf\-8 character, but was removed in v5.24 as
+it broke encapsulation and its implementation was extremely buggy.
+If you really need to process the individual bytes, you probably
+want to convert your string to one where each underlying byte is
+stored as a character, with \fButf8::encode()\fR.
+.IP "Code missing after '/'" 4
+.IX Item "Code missing after '/'"
+(F) You had a (sub\-)template that ends with a '/'. There must be
+another template code following the slash. See "pack" in perlfunc.
+.IP "Code point 0x%X is not Unicode, and not portable" 4
+.IX Item "Code point 0x%X is not Unicode, and not portable"
+(S non_unicode portable) You had a code point that has never been in any
+standard, so it is likely that languages other than Perl will NOT
+understand it. This code point also will not fit in a 32\-bit word on
+ASCII platforms and therefore is non-portable between systems.
+.Sp
+At one time, it was legal in some standards to have code points up to
+0x7FFF_FFFF, but not higher, and this code point is higher.
+.Sp
+Acceptance of these code points is a Perl extension, and you should
+expect that nothing other than Perl can handle them; Perl itself on
+EBCDIC platforms before v5.24 does not handle them.
+.Sp
+Perl also makes no guarantees that the representation of these code
+points won't change at some point in the future, say when machines
+become available that have larger than a 64\-bit word. At that time,
+files containing any of these, written by an older Perl might require
+conversion before being readable by a newer Perl.
+.IP "Code point 0x%X is not Unicode, may not be portable" 4
+.IX Item "Code point 0x%X is not Unicode, may not be portable"
+(S non_unicode) You had a code point above the Unicode maximum
+of U+10FFFF.
+.Sp
+Perl allows strings to contain a superset of Unicode code points, but
+these may not be accepted by other languages/systems. Further, even if
+these languages/systems accept these large code points, they may have
+chosen a different representation for them than the UTF\-8\-like one that
+Perl has, which would mean files are not exchangeable between them and
+Perl.
+.Sp
+On EBCDIC platforms, code points above 0x3FFF_FFFF have a different
+representation in Perl v5.24 than before, so any file containing these
+that was written before that version will require conversion before
+being readable by a later Perl.
+.ie n .IP "%s: Command not found" 4
+.el .IP "\f(CW%s:\fR Command not found" 4
+.IX Item "%s: Command not found"
+(A) You've accidentally run your script through \fBcsh\fR or another shell
+instead of Perl. Check the #! line, or manually feed your script into
+Perl yourself. The #! line at the top of your file could look like
+.Sp
+.Vb 1
+\& #!/usr/bin/perl
+.Ve
+.ie n .IP "%s: command not found" 4
+.el .IP "\f(CW%s:\fR command not found" 4
+.IX Item "%s: command not found"
+(A) You've accidentally run your script through \fBbash\fR or another shell
+instead of Perl. Check the #! line, or manually feed your script into
+Perl yourself. The #! line at the top of your file could look like
+.Sp
+.Vb 1
+\& #!/usr/bin/perl
+.Ve
+.ie n .IP "%s: command not found: %s" 4
+.el .IP "\f(CW%s:\fR command not found: \f(CW%s\fR" 4
+.IX Item "%s: command not found: %s"
+(A) You've accidentally run your script through \fBzsh\fR or another shell
+instead of Perl. Check the #! line, or manually feed your script into
+Perl yourself. The #! line at the top of your file could look like
+.Sp
+.Vb 1
+\& #!/usr/bin/perl
+.Ve
+.IP "Compilation failed in require" 4
+.IX Item "Compilation failed in require"
+(F) Perl could not compile a file specified in a \f(CW\*(C`require\*(C'\fR statement.
+Perl uses this generic message when none of the errors that it
+encountered were severe enough to halt compilation immediately.
+.ie n .IP "\fBconnect()\fR on closed socket %s" 4
+.el .IP "\fBconnect()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "connect() on closed socket %s"
+(W closed) You tried to do a connect on a closed socket. Did you forget
+to check the return value of your \fBsocket()\fR call? See
+"connect" in perlfunc.
+.IP "Constant(%s): Call to &{$^H{%s}} did not return a defined value" 4
+.IX Item "Constant(%s): Call to &{$^H{%s}} did not return a defined value"
+(F) The subroutine registered to handle constant overloading
+(see overload) or a custom charnames handler (see
+"CUSTOM TRANSLATORS" in charnames) returned an undefined value.
+.IP "Constant(%s): $^H{%s} is not defined" 4
+.IX Item "Constant(%s): $^H{%s} is not defined"
+(F) The parser found inconsistencies while attempting to define an
+overloaded constant. Perhaps you forgot to load the corresponding
+overload pragma?
+.ie n .IP "Constant is not %s reference" 4
+.el .IP "Constant is not \f(CW%s\fR reference" 4
+.IX Item "Constant is not %s reference"
+(F) A constant value (perhaps declared using the \f(CW\*(C`use constant\*(C'\fR pragma)
+is being dereferenced, but it amounts to the wrong type of reference.
+The message indicates the type of reference that was expected. This
+usually indicates a syntax error in dereferencing the constant value.
+See "Constant Functions" in perlsub and constant.
+.IP "Constants from lexical variables potentially modified elsewhere are no longer permitted" 4
+.IX Item "Constants from lexical variables potentially modified elsewhere are no longer permitted"
+(F) You wrote something like
+.Sp
+.Vb 2
+\& my $var;
+\& $sub = sub () { $var };
+.Ve
+.Sp
+but \f(CW$var\fR is referenced elsewhere and could be modified after the \f(CW\*(C`sub\*(C'\fR
+expression is evaluated. Either it is explicitly modified elsewhere
+(\f(CW\*(C`$var = 3\*(C'\fR) or it is passed to a subroutine or to an operator like
+\&\f(CW\*(C`printf\*(C'\fR or \f(CW\*(C`map\*(C'\fR, which may or may not modify the variable.
+.Sp
+Traditionally, Perl has captured the value of the variable at that
+point and turned the subroutine into a constant eligible for inlining.
+In those cases where the variable can be modified elsewhere, this
+breaks the behavior of closures, in which the subroutine captures
+the variable itself, rather than its value, so future changes to the
+variable are reflected in the subroutine's return value.
+.Sp
+This usage was deprecated, and as of Perl 5.32 is no longer allowed,
+making it possible to change the behavior in the future.
+.Sp
+If you intended for the subroutine to be eligible for inlining, then
+make sure the variable is not referenced elsewhere, possibly by
+copying it:
+.Sp
+.Vb 2
+\& my $var2 = $var;
+\& $sub = sub () { $var2 };
+.Ve
+.Sp
+If you do want this subroutine to be a closure that reflects future
+changes to the variable that it closes over, add an explicit \f(CW\*(C`return\*(C'\fR:
+.Sp
+.Vb 2
+\& my $var;
+\& $sub = sub () { return $var };
+.Ve
+.ie n .IP "Constant subroutine %s redefined" 4
+.el .IP "Constant subroutine \f(CW%s\fR redefined" 4
+.IX Item "Constant subroutine %s redefined"
+(W redefine)(S) You redefined a subroutine which had previously
+been eligible for inlining. See "Constant Functions" in perlsub
+for commentary and workarounds.
+.ie n .IP "Constant subroutine %s undefined" 4
+.el .IP "Constant subroutine \f(CW%s\fR undefined" 4
+.IX Item "Constant subroutine %s undefined"
+(W misc) You undefined a subroutine which had previously been eligible
+for inlining. See "Constant Functions" in perlsub for commentary and
+workarounds.
+.IP "Constant(%s) unknown" 4
+.IX Item "Constant(%s) unknown"
+(F) The parser found inconsistencies either while attempting
+to define an overloaded constant, or when trying to find the
+character name specified in the \f(CW\*(C`\eN{...}\*(C'\fR escape. Perhaps you
+forgot to load the corresponding overload pragma?
+.IP ":const is experimental" 4
+.IX Item ":const is experimental"
+(S experimental::const_attr) The "const" attribute is experimental.
+If you want to use the feature, disable the warning with \f(CWno warnings
+\&\*(Aqexperimental::const_attr\*(Aq\fR, but know that in doing so you are taking
+the risk that your code may break in a future Perl version.
+.IP ":const is not permitted on named subroutines" 4
+.IX Item ":const is not permitted on named subroutines"
+(F) The "const" attribute causes an anonymous subroutine to be run and
+its value captured at the time that it is cloned. Named subroutines are
+not cloned like this, so the attribute does not make sense on them.
+.IP "Copy method did not return a reference" 4
+.IX Item "Copy method did not return a reference"
+(F) The method which overloads "=" is buggy. See
+"Copy Constructor" in overload.
+.IP "&CORE::%s cannot be called directly" 4
+.IX Item "&CORE::%s cannot be called directly"
+(F) You tried to call a subroutine in the \f(CW\*(C`CORE::\*(C'\fR namespace
+with \f(CW&foo\fR syntax or through a reference. Some subroutines
+in this package cannot yet be called that way, but must be
+called as barewords. Something like this will work:
+.Sp
+.Vb 2
+\& BEGIN { *shove = \e&CORE::push; }
+\& shove @array, 1,2,3; # pushes on to @array
+.Ve
+.IP "CORE::%s is not a keyword" 4
+.IX Item "CORE::%s is not a keyword"
+(F) The CORE:: namespace is reserved for Perl keywords.
+.ie n .IP "Corrupted regexp opcode %d > %d" 4
+.el .IP "Corrupted regexp opcode \f(CW%d\fR > \f(CW%d\fR" 4
+.IX Item "Corrupted regexp opcode %d > %d"
+(P) This is either an error in Perl, or, if you're using
+one, your custom regular expression engine. If not the
+latter, report the problem to <https://github.com/Perl/perl5/issues/new/choose>.
+.IP "corrupted regexp pointers" 4
+.IX Item "corrupted regexp pointers"
+(P) The regular expression engine got confused by what the regular
+expression compiler gave it.
+.IP "corrupted regexp program" 4
+.IX Item "corrupted regexp program"
+(P) The regular expression engine got passed a regexp program without a
+valid magic number.
+.IP "Corrupt malloc ptr 0x%x at 0x%x" 4
+.IX Item "Corrupt malloc ptr 0x%x at 0x%x"
+(P) The malloc package that comes with Perl had an internal failure.
+.IP "Count after length/code in unpack" 4
+.IX Item "Count after length/code in unpack"
+(F) You had an unpack template indicating a counted-length string, but
+you have also specified an explicit size for the string. See
+"pack" in perlfunc.
+.IP "Declaring references is experimental" 4
+.IX Item "Declaring references is experimental"
+(S experimental::declared_refs) This warning is emitted if you use
+a reference constructor on the right-hand side of \f(CW\*(C`my\*(C'\fR, \f(CW\*(C`state\*(C'\fR, \f(CW\*(C`our\*(C'\fR, or
+\&\f(CW\*(C`local\*(C'\fR. Simply suppress the warning if you want to use the feature, but
+know that in doing so you are taking the risk of using an experimental
+feature which may change or be removed in a future Perl version:
+.Sp
+.Vb 3
+\& no warnings "experimental::declared_refs";
+\& use feature "declared_refs";
+\& $fooref = my \e$foo;
+.Ve
+.IP "Deep recursion on anonymous subroutine" 4
+.IX Item "Deep recursion on anonymous subroutine"
+.PD 0
+.IP "Deep recursion on subroutine ""%s""" 4
+.IX Item "Deep recursion on subroutine ""%s"""
+.PD
+(W recursion) This subroutine has called itself (directly or indirectly)
+100 times more than it has returned. This probably indicates an
+infinite recursion, unless you're writing strange benchmark programs, in
+which case it indicates something else.
+.Sp
+This threshold can be changed from 100, by recompiling the \fIperl\fR binary,
+setting the C pre-processor macro \f(CW\*(C`PERL_SUB_DEPTH_WARN\*(C'\fR to the desired value.
+.IP "(?(DEFINE)....) does not allow branches in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "(?(DEFINE)....) does not allow branches in regex; marked by <--\ HERE in m/%s/"
+(F) You used something like \f(CW\*(C`(?(DEFINE)...|..)\*(C'\fR which is illegal. The
+most likely cause of this error is that you left out a parenthesis inside
+of the \f(CW\*(C`....\*(C'\fR part.
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.ie n .IP "%s defines neither package nor VERSION\-\-version check failed" 4
+.el .IP "\f(CW%s\fR defines neither package nor VERSION\-\-version check failed" 4
+.IX Item "%s defines neither package nor VERSION--version check failed"
+(F) You said something like "use Module 42" but in the Module file
+there are neither package declarations nor a \f(CW$VERSION\fR.
+.IP "delete argument is not a HASH or ARRAY element or slice" 4
+.IX Item "delete argument is not a HASH or ARRAY element or slice"
+(F) The argument to \f(CW\*(C`delete\*(C'\fR must be either a hash or array element,
+such as:
+.Sp
+.Vb 2
+\& $foo{$bar}
+\& $ref\->{"susie"}[12]
+.Ve
+.Sp
+or a hash or array slice, such as:
+.Sp
+.Vb 2
+\& @foo[$bar, $baz, $xyzzy]
+\& $ref\->[12]\->@{"susie", "queue"}
+.Ve
+.Sp
+or a hash key/value or array index/value slice, such as:
+.Sp
+.Vb 2
+\& %foo[$bar, $baz, $xyzzy]
+\& $ref\->[12]\->%{"susie", "queue"}
+.Ve
+.IP "Delimiter for here document is too long" 4
+.IX Item "Delimiter for here document is too long"
+(F) In a here document construct like \f(CW\*(C`<<FOO\*(C'\fR, the label \f(CW\*(C`FOO\*(C'\fR is too
+long for Perl to handle. You have to be seriously twisted to write code
+that triggers this error.
+.IP "DESTROY created new reference to dead object '%s'" 4
+.IX Item "DESTROY created new reference to dead object '%s'"
+(F) A \fBDESTROY()\fR method created a new reference to the object which is
+just being DESTROYed. Perl is confused, and prefers to abort rather
+than to create a dangling reference.
+.IP "Did not produce a valid header" 4
+.IX Item "Did not produce a valid header"
+See "500 Server error".
+.ie n .IP "%s did not return a true value" 4
+.el .IP "\f(CW%s\fR did not return a true value" 4
+.IX Item "%s did not return a true value"
+(F) A required (or used) file must return a true value to indicate that
+it compiled correctly and ran its initialization code correctly. It's
+traditional to end such a file with a "1;", though any true value would
+do. See "require" in perlfunc.
+.IP "(Did you mean &%s instead?)" 4
+.IX Item "(Did you mean &%s instead?)"
+(W misc) You probably referred to an imported subroutine &FOO as \f(CW$FOO\fR or
+some such.
+.IP "(Did you mean ""local"" instead of ""our""?)" 4
+.IX Item "(Did you mean ""local"" instead of ""our""?)"
+(W shadow) Remember that "our" does not localize the declared global
+variable. You have declared it again in the same lexical scope, which
+seems superfluous.
+.IP "(Did you mean $ or @ instead of %?)" 4
+.IX Item "(Did you mean $ or @ instead of %?)"
+(W) You probably said \f(CW%hash\fR{$key} when you meant \f(CW$hash\fR{$key} or
+\&\f(CW@hash\fR{@keys}. On the other hand, maybe you just meant \f(CW%hash\fR and got
+carried away.
+.IP Died 4
+.IX Item "Died"
+(F) You passed \fBdie()\fR an empty string (the equivalent of \f(CW\*(C`die ""\*(C'\fR) or
+you called it with no args and \f(CW$@\fR was empty.
+.IP "Document contains no data" 4
+.IX Item "Document contains no data"
+See "500 Server error".
+.ie n .IP "%s does not define %s::VERSION\-\-version check failed" 4
+.el .IP "\f(CW%s\fR does not define \f(CW%s::VERSION\fR\-\-version check failed" 4
+.IX Item "%s does not define %s::VERSION--version check failed"
+(F) You said something like "use Module 42" but the Module did not
+define a \f(CW$VERSION\fR.
+.ie n .IP "'/' does not take a repeat count in %s" 4
+.el .IP "'/' does not take a repeat count in \f(CW%s\fR" 4
+.IX Item "'/' does not take a repeat count in %s"
+(F) You cannot put a repeat count of any kind right after the '/' code.
+See "pack" in perlfunc.
+.ie n .IP "do ""%s"" failed, '.' is no longer in @INC; did you mean do ""./%s""?" 4
+.el .IP "do ""%s"" failed, '.' is no longer in \f(CW@INC\fR; did you mean do ""./%s""?" 4
+.IX Item "do ""%s"" failed, '.' is no longer in @INC; did you mean do ""./%s""?"
+(D deprecated::dot_in_inc) Previously \f(CW\*(C` do "somefile"; \*(C'\fR would search
+the current directory for the specified file. Since perl v5.26.0, \fI.\fR
+has been removed from \f(CW@INC\fR by default, so this is no longer true. To
+search the current directory (and only the current directory) you can
+write \f(CW\*(C` do "./somefile"; \*(C'\fR.
+.IP "Don't know how to get file name" 4
+.IX Item "Don't know how to get file name"
+(P) \f(CW\*(C`PerlIO_getname\*(C'\fR, a perl internal I/O function specific to VMS, was
+somehow called on another platform. This should not happen.
+.IP "Don't know how to handle magic of type \e%o" 4
+.IX Item "Don't know how to handle magic of type %o"
+(P) The internal handling of magical variables has been cursed.
+.IP "Downgrading a use VERSION declaration to below v5.11 is deprecated" 4
+.IX Item "Downgrading a use VERSION declaration to below v5.11 is deprecated"
+(S deprecated::version_downgrade) This warning is emitted on a
+\&\f(CW\*(C`use VERSION\*(C'\fR statement that requests a version below v5.11 (when the
+effects of \f(CW\*(C`use strict\*(C'\fR would be disabled), after a previous
+declaration of one having a larger number (which would have enabled
+these effects). Because of a change to the way that \f(CW\*(C`use VERSION\*(C'\fR
+interacts with the strictness flags, this is no longer supported.
+.ie n .IP "(Do you need to predeclare %s?)" 4
+.el .IP "(Do you need to predeclare \f(CW%s\fR?)" 4
+.IX Item "(Do you need to predeclare %s?)"
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". It often means a subroutine or module
+name is being referenced that hasn't been declared yet. This may be
+because of ordering problems in your file, or because of a missing
+"sub", "package", "require", or "use" statement. If you're referencing
+something that isn't defined yet, you don't actually have to define the
+subroutine or package before the current location. You can use an empty
+"sub foo;" or "package FOO;" to enter a "forward" declaration.
+.IP "\fBdump()\fR must be written as \fBCORE::dump()\fR as of Perl 5.30" 4
+.IX Item "dump() must be written as CORE::dump() as of Perl 5.30"
+(F) You used the obsolete \f(CWdump()\fR built-in function. That was deprecated in
+Perl 5.8.0. As of Perl 5.30 it must be written in fully qualified format:
+\&\f(CWCORE::dump()\fR.
+.Sp
+See "dump" in perlfunc.
+.IP "dump is not supported" 4
+.IX Item "dump is not supported"
+(F) Your machine doesn't support dump/undump.
+.IP "Duplicate \fBfree()\fR ignored" 4
+.IX Item "Duplicate free() ignored"
+(S malloc) An internal routine called \fBfree()\fR on something that had
+already been freed.
+.ie n .IP "Duplicate modifier '%c' after '%c' in %s" 4
+.el .IP "Duplicate modifier '%c' after '%c' in \f(CW%s\fR" 4
+.IX Item "Duplicate modifier '%c' after '%c' in %s"
+(W unpack) You have applied the same modifier more than once after a
+type in a pack template. See "pack" in perlfunc.
+.ie n .IP "each on anonymous %s will always start from the beginning" 4
+.el .IP "each on anonymous \f(CW%s\fR will always start from the beginning" 4
+.IX Item "each on anonymous %s will always start from the beginning"
+(W syntax) You called each on an anonymous hash or
+array. Since a new hash or array is created each time, \fBeach()\fR will
+restart iterating over your hash or array every time.
+.IP "elseif should be elsif" 4
+.IX Item "elseif should be elsif"
+(S syntax) There is no keyword "elseif" in Perl because Larry thinks
+it's ugly. Your code will be interpreted as an attempt to call a method
+named "elseif" for the class returned by the following block. This is
+unlikely to be what you want.
+.IP "Empty \e%c in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Empty %c in regex; marked by <--\ HERE in m/%s/"
+.PD 0
+.IP "Empty \e%c{}" 4
+.IX Item "Empty %c{}"
+.IP "Empty \e%c{} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Empty %c{} in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) You used something like \f(CW\*(C`\eb{}\*(C'\fR, \f(CW\*(C`\eB{}\*(C'\fR, \f(CW\*(C`\eo{}\*(C'\fR, \f(CW\*(C`\ep\*(C'\fR, \f(CW\*(C`\eP\*(C'\fR, or
+\&\f(CW\*(C`\ex\*(C'\fR without specifying anything for it to operate on.
+.Sp
+Unfortunately, for backwards compatibility reasons, an empty \f(CW\*(C`\ex\*(C'\fR is
+legal outside \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR and expands to a NUL character.
+.IP "Empty (?) without any modifiers in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Empty (?) without any modifiers in regex; marked by <-- HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR)
+\&\f(CW\*(C`(?)\*(C'\fR does nothing, so perhaps this is a typo.
+.IP "${^ENCODING} is no longer supported" 4
+.IX Item "${^ENCODING} is no longer supported"
+(F) The special variable \f(CW\*(C`${^ENCODING}\*(C'\fR, formerly used to implement
+the \f(CW\*(C`encoding\*(C'\fR pragma, is no longer supported as of Perl 5.26.0.
+.Sp
+Setting it to anything other than \f(CW\*(C`undef\*(C'\fR is a fatal error as of Perl
+5.28.
+.IP "${^HOOK}{%s} may only be a CODE reference or undef" 4
+.IX Item "${^HOOK}{%s} may only be a CODE reference or undef"
+(F) You attempted to assign something other than undef or a CODE ref to
+\&\f(CW\*(C`%{^HOOK}\*(C'\fR. Hooks may only be CODE refs. See "%{^HOOK}" in perlvar for
+details.
+.IP "Attempt to set unknown hook '%s' in %{^HOOK}" 4
+.IX Item "Attempt to set unknown hook '%s' in %{^HOOK}"
+(F) You attempted to assign something other than undef or a CODE ref to
+\&\f(CW\*(C`%{^HOOK}\*(C'\fR. Hooks may only be CODE refs. See "%{^HOOK}" in perlvar for
+details.
+.ie n .IP "entering effective %s failed" 4
+.el .IP "entering effective \f(CW%s\fR failed" 4
+.IX Item "entering effective %s failed"
+(F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, switching the real and
+effective uids or gids failed.
+.ie n .IP "%ENV is aliased to %s" 4
+.el .IP "\f(CW%ENV\fR is aliased to \f(CW%s\fR" 4
+.IX Item "%ENV is aliased to %s"
+(F) You're running under taint mode, and the \f(CW%ENV\fR variable has been
+aliased to another hash, so it doesn't reflect anymore the state of the
+program's environment. This is potentially insecure.
+.ie n .IP "Error converting file specification %s" 4
+.el .IP "Error converting file specification \f(CW%s\fR" 4
+.IX Item "Error converting file specification %s"
+(F) An error peculiar to VMS. Because Perl may have to deal with file
+specifications in either VMS or Unix syntax, it converts them to a
+single form when it must operate on them directly. Either you've passed
+an invalid file specification to Perl, or you've found a case the
+conversion routines don't handle. Drat.
+.ie n .IP "Error %s in expansion of %s" 4
+.el .IP "Error \f(CW%s\fR in expansion of \f(CW%s\fR" 4
+.IX Item "Error %s in expansion of %s"
+(F) An error was encountered in handling a user-defined property
+("User-Defined Character Properties" in perlunicode). These are
+programmer written subroutines, hence subject to errors that may
+prevent them from compiling or running. The calls to these subs are
+\&\f(CW\*(C`eval\*(C'\fR'd, and if there is a failure, this message is raised, using the
+contents of \f(CW$@\fR from the failed \f(CW\*(C`eval\*(C'\fR.
+.Sp
+Another possibility is that tainted data was encountered somewhere in
+the chain of expanding the property. If so, the message wording will
+indicate that this is the problem. See "Insecure user-defined
+property \f(CW%s\fR".
+.IP "Eval-group in insecure regular expression" 4
+.IX Item "Eval-group in insecure regular expression"
+(F) Perl detected tainted data when trying to compile a regular
+expression that contains the \f(CW\*(C`(?{ ... })\*(C'\fR zero-width assertion, which
+is unsafe. See "(?{ code })" in perlre, and perlsec.
+.IP "Eval-group not allowed at runtime, use re 'eval' in regex m/%s/" 4
+.IX Item "Eval-group not allowed at runtime, use re 'eval' in regex m/%s/"
+(F) Perl tried to compile a regular expression containing the
+\&\f(CW\*(C`(?{ ... })\*(C'\fR zero-width assertion at run time, as it would when the
+pattern contains interpolated values. Since that is a security risk,
+it is not allowed. If you insist, you may still do this by using the
+\&\f(CW\*(C`re \*(Aqeval\*(Aq\*(C'\fR pragma or by explicitly building the pattern from an
+interpolated string at run time and using that in an \fBeval()\fR. See
+"(?{ code })" in perlre.
+.IP "Eval-group not allowed, use re 'eval' in regex m/%s/" 4
+.IX Item "Eval-group not allowed, use re 'eval' in regex m/%s/"
+(F) A regular expression contained the \f(CW\*(C`(?{ ... })\*(C'\fR zero-width
+assertion, but that construct is only allowed when the \f(CW\*(C`use re \*(Aqeval\*(Aq\*(C'\fR
+pragma is in effect. See "(?{ code })" in perlre.
+.IP "EVAL without pos change exceeded limit in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "EVAL without pos change exceeded limit in regex; marked by <--\ HERE in m/%s/"
+(F) You used a pattern that nested too many EVAL calls without consuming
+any text. Restructure the pattern so that text is consumed.
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Excessively long <> operator" 4
+.IX Item "Excessively long <> operator"
+(F) The contents of a <> operator may not exceed the maximum size of a
+Perl identifier. If you're just trying to glob a long list of
+filenames, try using the \fBglob()\fR operator, or put the filenames into a
+variable and glob that.
+.IP "exec? I'm not *that* kind of operating system" 4
+.IX Item "exec? I'm not *that* kind of operating system"
+(F) The \f(CW\*(C`exec\*(C'\fR function is not implemented on some systems, e.g.
+Catamount. See perlport.
+.ie n .IP "%sExecution of %s aborted due to compilation errors." 4
+.el .IP "\f(CW%sExecution\fR of \f(CW%s\fR aborted due to compilation errors." 4
+.IX Item "%sExecution of %s aborted due to compilation errors."
+(F) The final summary message when a Perl compilation fails.
+.ie n .IP "Execution of %s aborted due to compilation errors." 4
+.el .IP "Execution of \f(CW%s\fR aborted due to compilation errors." 4
+.IX Item "Execution of %s aborted due to compilation errors."
+(F) The final summary message when a Perl compilation fails.
+.IP "exists argument is not a HASH or ARRAY element or a subroutine" 4
+.IX Item "exists argument is not a HASH or ARRAY element or a subroutine"
+(F) The argument to \f(CW\*(C`exists\*(C'\fR must be a hash or array element or a
+subroutine with an ampersand, such as:
+.Sp
+.Vb 3
+\& $foo{$bar}
+\& $ref\->{"susie"}[12]
+\& &do_something
+.Ve
+.IP "exists argument is not a subroutine name" 4
+.IX Item "exists argument is not a subroutine name"
+(F) The argument to \f(CW\*(C`exists\*(C'\fR for \f(CW\*(C`exists &sub\*(C'\fR must be a subroutine name,
+and not a subroutine call. \f(CW\*(C`exists &sub()\*(C'\fR will generate this error.
+.ie n .IP "Exiting eval via %s" 4
+.el .IP "Exiting eval via \f(CW%s\fR" 4
+.IX Item "Exiting eval via %s"
+(W exiting) You are exiting an eval by unconventional means, such as a
+goto, or a loop control statement.
+.ie n .IP "Exiting format via %s" 4
+.el .IP "Exiting format via \f(CW%s\fR" 4
+.IX Item "Exiting format via %s"
+(W exiting) You are exiting a format by unconventional means, such as a
+goto, or a loop control statement.
+.ie n .IP "Exiting pseudo-block via %s" 4
+.el .IP "Exiting pseudo-block via \f(CW%s\fR" 4
+.IX Item "Exiting pseudo-block via %s"
+(W exiting) You are exiting a rather special block construct (like a
+sort block or subroutine) by unconventional means, such as a goto, or a
+loop control statement. See "sort" in perlfunc.
+.ie n .IP "Exiting subroutine via %s" 4
+.el .IP "Exiting subroutine via \f(CW%s\fR" 4
+.IX Item "Exiting subroutine via %s"
+(W exiting) You are exiting a subroutine by unconventional means, such
+as a goto, or a loop control statement.
+.ie n .IP "Exiting substitution via %s" 4
+.el .IP "Exiting substitution via \f(CW%s\fR" 4
+.IX Item "Exiting substitution via %s"
+(W exiting) You are exiting a substitution by unconventional means, such
+as a return, a goto, or a loop control statement.
+.ie n .IP "Expected %s reference in export_lexically" 4
+.el .IP "Expected \f(CW%s\fR reference in export_lexically" 4
+.IX Item "Expected %s reference in export_lexically"
+(F) The type of a reference given to "export_lexically" in builtin did not
+match the sigil of the preceding name, or the value was not a reference at
+all.
+.IP "Expecting close bracket in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Expecting close bracket in regex; marked by <--\ HERE in m/%s/"
+(F) You wrote something like
+.Sp
+.Vb 1
+\& (?13
+.Ve
+.Sp
+to denote a capturing group of the form
+\&\f(CW\*(C`(?\fR\f(CIPARNO\fR\f(CW)\*(C'\fR,
+but omitted the \f(CW")"\fR.
+.IP "Expecting interpolated extended charclass in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Expecting interpolated extended charclass in regex; marked by <-- HERE in m/%s/"
+(F) It looked like you were attempting to interpolate an
+already-compiled extended character class, like so:
+.Sp
+.Vb 3
+\& my $thai_or_lao = qr/(?[ \ep{Thai} + \ep{Lao} ])/;
+\& ...
+\& qr/(?[ \ep{Digit} & $thai_or_lao ])/;
+.Ve
+.Sp
+But the marked code isn't syntactically correct to be such an
+interpolated class.
+.IP "Experimental aliasing via reference not enabled" 4
+.IX Item "Experimental aliasing via reference not enabled"
+(F) To do aliasing via references, you must first enable the feature:
+.Sp
+.Vb 3
+\& no warnings "experimental::refaliasing";
+\& use feature "refaliasing";
+\& \e$x = \e$y;
+.Ve
+.ie n .IP "Experimental %s on scalar is now forbidden" 4
+.el .IP "Experimental \f(CW%s\fR on scalar is now forbidden" 4
+.IX Item "Experimental %s on scalar is now forbidden"
+(F) An experimental feature added in Perl 5.14 allowed \f(CW\*(C`each\*(C'\fR, \f(CW\*(C`keys\*(C'\fR,
+\&\f(CW\*(C`push\*(C'\fR, \f(CW\*(C`pop\*(C'\fR, \f(CW\*(C`shift\*(C'\fR, \f(CW\*(C`splice\*(C'\fR, \f(CW\*(C`unshift\*(C'\fR, and \f(CW\*(C`values\*(C'\fR to be called with a
+scalar argument. This experiment is considered unsuccessful, and
+has been removed. The \f(CW\*(C`postderef\*(C'\fR feature may meet your needs better.
+.IP "Experimental subroutine signatures not enabled" 4
+.IX Item "Experimental subroutine signatures not enabled"
+(F) To use subroutine signatures, you must first enable them:
+.Sp
+.Vb 2
+\& use feature "signatures";
+\& sub foo ($left, $right) { ... }
+.Ve
+.IP "Explicit blessing to '' (assuming package main)" 4
+.IX Item "Explicit blessing to '' (assuming package main)"
+(W misc) You are blessing a reference to a zero length string. This has
+the effect of blessing the reference into the package main. This is
+usually not what you want. Consider providing a default target package,
+e.g. bless($ref, \f(CW$p\fR || 'MyPackage');
+.IP "export_lexically can only be called at compile time" 4
+.IX Item "export_lexically can only be called at compile time"
+(F) "export_lexically" in builtin was called at runtime. Because it creates
+new names in the lexical scope currently being compiled, it can only be
+called from code inside \f(CW\*(C`BEGIN\*(C'\fR block in that scope.
+.ie n .IP "%s: Expression syntax" 4
+.el .IP "\f(CW%s:\fR Expression syntax" 4
+.IX Item "%s: Expression syntax"
+(A) You've accidentally run your script through \fBcsh\fR instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+.ie n .IP "%s failed\-\-call queue aborted" 4
+.el .IP "\f(CW%s\fR failed\-\-call queue aborted" 4
+.IX Item "%s failed--call queue aborted"
+(F) An untrapped exception was raised while executing a UNITCHECK,
+CHECK, INIT, or END subroutine. Processing of the remainder of the
+queue of such routines has been prematurely ended.
+.ie n .IP "Failed to close in-place work file %s: %s" 4
+.el .IP "Failed to close in-place work file \f(CW%s:\fR \f(CW%s\fR" 4
+.IX Item "Failed to close in-place work file %s: %s"
+(F) Closing an output file from in-place editing, as with the \f(CW\*(C`\-i\*(C'\fR
+command-line switch, failed.
+.IP "False [] range ""%s"" in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "False [] range ""%s"" in regex; marked by <--\ HERE in m/%s/"
+(W regexp)(F) A character class range must start and end at a literal
+character, not another character class like \f(CW\*(C`\ed\*(C'\fR or \f(CW\*(C`[:alpha:]\*(C'\fR. The "\-"
+in your false range is interpreted as a literal "\-". In a \f(CW\*(C`(?[...])\*(C'\fR
+construct, this is an error, rather than a warning. Consider quoting
+the "\-", "\e\-". The <\-\-\ HERE shows whereabouts in the regular expression
+the problem was discovered. See perlre.
+.ie n .IP "Fatal VMS error (status=%d) at %s, line %d" 4
+.el .IP "Fatal VMS error (status=%d) at \f(CW%s\fR, line \f(CW%d\fR" 4
+.IX Item "Fatal VMS error (status=%d) at %s, line %d"
+(P) An error peculiar to VMS. Something untoward happened in a VMS
+system service or RTL routine; Perl's exit status should provide more
+details. The filename in "at \f(CW%s\fR" and the line number in "line \f(CW%d\fR" tell
+you which section of the Perl source code is distressed.
+.IP "fcntl is not implemented" 4
+.IX Item "fcntl is not implemented"
+(F) Your machine apparently doesn't implement \fBfcntl()\fR. What is this, a
+PDP\-11 or something?
+.IP "FETCHSIZE returned a negative value" 4
+.IX Item "FETCHSIZE returned a negative value"
+(F) A tied array claimed to have a negative number of elements, which
+is not possible.
+.IP "Field already has a parameter name, cannot add another" 4
+.IX Item "Field already has a parameter name, cannot add another"
+(F) A field may have at most one application of the \f(CW\*(C`:param\*(C'\fR attribute to
+assign a parameter name to it; once applied a second one is not allowed.
+.ie n .IP "Field attribute %s requires a value" 4
+.el .IP "Field attribute \f(CW%s\fR requires a value" 4
+.IX Item "Field attribute %s requires a value"
+(F) You specified an attribute for a field that would require a value to
+be passed in parentheses, but did not provide one. Remember that
+whitespace is \fBnot\fR permitted between the attribute name and its value;
+you must write this as
+.Sp
+.Vb 1
+\& field $var :attr(VALUE) ...
+.Ve
+.IP "field is experimental" 4
+.IX Item "field is experimental"
+(S experimental::class) This warning is emitted if you use the \f(CW\*(C`field\*(C'\fR
+keyword of \f(CW\*(C`use feature \*(Aqclass\*(Aq\*(C'\fR. This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+.ie n .IP "Field %s is not accessible outside a method" 4
+.el .IP "Field \f(CW%s\fR is not accessible outside a method" 4
+.IX Item "Field %s is not accessible outside a method"
+(F) An attempt was made to access a field variable of a class from code
+that does not appear inside the body of a \f(CW\*(C`method\*(C'\fR subroutine. This is not
+permitted, as only methods will have access to the fields of an instance.
+.ie n .IP "Field %s of ""%s"" is not accessible in a method of ""%s""" 4
+.el .IP "Field \f(CW%s\fR of ""%s"" is not accessible in a method of ""%s""" 4
+.IX Item "Field %s of ""%s"" is not accessible in a method of ""%s"""
+(F) An attempt was made to access a field variable of a class, from a
+method of another class nested inside the one that actually defined it.
+This is not permitted, as only methods defined by a given class are
+permitted to access fields of that class.
+.IP "Field too wide in 'u' format in pack" 4
+.IX Item "Field too wide in 'u' format in pack"
+(W pack) Each line in an uuencoded string starts with a length indicator
+which can't encode values above 63. So there is no point in asking for
+a line length bigger than that. Perl will behave as if you specified
+\&\f(CW\*(C`u63\*(C'\fR as the format.
+.ie n .IP "Filehandle %s opened only for input" 4
+.el .IP "Filehandle \f(CW%s\fR opened only for input" 4
+.IX Item "Filehandle %s opened only for input"
+(W io) 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 intended only to
+write the file, use ">" or ">>". See "open" in perlfunc.
+.ie n .IP "Filehandle %s opened only for output" 4
+.el .IP "Filehandle \f(CW%s\fR opened only for output" 4
+.IX Item "Filehandle %s opened only for output"
+(W io) You tried to read from a filehandle opened only for writing, If
+you intended it to be a read/write filehandle, you needed to open it
+with "+<" or "+>" or "+>>" instead of with ">". If you intended only to
+read from the file, use "<". See "open" in perlfunc. Another possibility
+is that you attempted to open filedescriptor 0 (also known as STDIN) for
+output (maybe you closed STDIN earlier?).
+.ie n .IP "Filehandle %s reopened as %s only for input" 4
+.el .IP "Filehandle \f(CW%s\fR reopened as \f(CW%s\fR only for input" 4
+.IX Item "Filehandle %s reopened as %s only for input"
+(W io) You opened for reading a filehandle that got the same filehandle id
+as STDOUT or STDERR. This occurred because you closed STDOUT or STDERR
+previously.
+.ie n .IP "Filehandle STDIN reopened as %s only for output" 4
+.el .IP "Filehandle STDIN reopened as \f(CW%s\fR only for output" 4
+.IX Item "Filehandle STDIN reopened as %s only for output"
+(W io) You opened for writing a filehandle that got the same filehandle id
+as STDIN. This occurred because you closed STDIN previously.
+.ie n .IP "Filehandle STD%s reopened as %s only for input" 4
+.el .IP "Filehandle STD%s reopened as \f(CW%s\fR only for input" 4
+.IX Item "Filehandle STD%s reopened as %s only for input"
+(W io) You opened for reading a filehandle that got the same filehandle id
+as STDOUT or STDERR. This occurred because you closed the handle previously.
+.ie n .IP "Final $ should be \e$ or $name" 4
+.el .IP "Final $ should be \e$ or \f(CW$name\fR" 4
+.IX Item "Final $ should be $ or $name"
+(F) You must now decide whether the final $ in a string was meant to be
+a literal dollar sign, or was meant to introduce a variable name that
+happens to be missing. So you have to put either the backslash or the
+name.
+.IP "defer is experimental" 4
+.IX Item "defer is experimental"
+(S experimental::defer) The \f(CW\*(C`defer\*(C'\fR block modifier is experimental. If you
+want to use the feature, disable the warning with
+\&\f(CW\*(C`no warnings \*(Aqexperimental::defer\*(Aq\*(C'\fR, but know that in doing so you are taking
+the risk that your code may break in a future Perl version.
+.ie n .IP "\fBflock()\fR on closed filehandle %s" 4
+.el .IP "\fBflock()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "flock() on closed filehandle %s"
+(W closed) The filehandle you're attempting to \fBflock()\fR got itself closed
+some time before now. Check your control flow. \fBflock()\fR operates on
+filehandles. Are you attempting to call \fBflock()\fR on a dirhandle by the
+same name?
+.IP "for my (...) is experimental" 4
+.IX Item "for my (...) is experimental"
+(S experimental::for_list) This warning is emitted if you use \f(CW\*(C`for\*(C'\fR to
+iterate multiple values at a time. This syntax is currently experimental
+and its behaviour may change in future releases of Perl.
+.IP "Format not terminated" 4
+.IX Item "Format not terminated"
+(F) A format must be terminated by a line with a solitary dot. Perl got
+to the end of your file without finding such a line.
+.ie n .IP "Format %s redefined" 4
+.el .IP "Format \f(CW%s\fR redefined" 4
+.IX Item "Format %s redefined"
+(W redefine) You redefined a format. To suppress this warning, say
+.Sp
+.Vb 4
+\& {
+\& no warnings \*(Aqredefine\*(Aq;
+\& eval "format NAME =...";
+\& }
+.Ve
+.IP "Found = in conditional, should be ==" 4
+.IX Item "Found = in conditional, should be =="
+(W syntax) You said
+.Sp
+.Vb 1
+\& if ($foo = 123)
+.Ve
+.Sp
+when you meant
+.Sp
+.Vb 1
+\& if ($foo == 123)
+.Ve
+.Sp
+(or something like that).
+.ie n .IP "%s found where operator expected" 4
+.el .IP "\f(CW%s\fR found where operator expected" 4
+.IX Item "%s found where operator expected"
+(S syntax) The Perl lexer knows whether to expect a term or an operator.
+If it sees what it knows to be a term when it was expecting to see an
+operator, it gives you this warning. Usually it indicates that an
+operator or delimiter was omitted, such as a semicolon.
+.ie n .IP "gdbm store returned %d, errno %d, key ""%s""" 4
+.el .IP "gdbm store returned \f(CW%d\fR, errno \f(CW%d\fR, key ""%s""" 4
+.IX Item "gdbm store returned %d, errno %d, key ""%s"""
+(S) A warning from the GDBM_File extension that a store failed.
+.IP "gethostent not implemented" 4
+.IX Item "gethostent not implemented"
+(F) Your C library apparently doesn't implement \fBgethostent()\fR, probably
+because if it did, it'd feel morally obligated to return every hostname
+on the Internet.
+.ie n .IP "get%\fBsname()\fR on closed socket %s" 4
+.el .IP "get%\fBsname()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "get%sname() on closed socket %s"
+(W closed) You tried to get a socket or peer socket name on a closed
+socket. Did you forget to check the return value of your \fBsocket()\fR call?
+.IP "getpwnam returned invalid UIC %#o for user ""%s""" 4
+.IX Item "getpwnam returned invalid UIC %#o for user ""%s"""
+(S) A warning peculiar to VMS. The call to \f(CW\*(C`sys$getuai\*(C'\fR underlying the
+\&\f(CW\*(C`getpwnam\*(C'\fR operator returned an invalid UIC.
+.ie n .IP "\fBgetsockopt()\fR on closed socket %s" 4
+.el .IP "\fBgetsockopt()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "getsockopt() on closed socket %s"
+(W closed) You tried to get a socket option on a closed socket. Did you
+forget to check the return value of your \fBsocket()\fR call? See
+"getsockopt" in perlfunc.
+.IP "given is deprecated" 4
+.IX Item "given is deprecated"
+(D deprecated::smartmatch) \f(CW\*(C`given\*(C'\fR depends on smartmatch, which is
+deprecated. It will be removed in Perl 5.42. See the explanation under
+"Experimental Details on given and when" in perlsyn.
+.ie n .IP "Global symbol ""%s"" requires explicit package name (did you forget to declare ""my %s""?)" 4
+.el .IP "Global symbol ""%s"" requires explicit package name (did you forget to declare ""my \f(CW%s\fR""?)" 4
+.IX Item "Global symbol ""%s"" requires explicit package name (did you forget to declare ""my %s""?)"
+(F) You've said "use strict" or "use strict vars", which indicates
+that all variables must either be lexically scoped (using "my" or "state"),
+declared beforehand using "our", or explicitly qualified to say
+which package the global variable is in (using "::").
+.IP "glob failed (%s)" 4
+.IX Item "glob failed (%s)"
+(S glob) Something went wrong with the external program(s) used
+for \f(CW\*(C`glob\*(C'\fR and \f(CW\*(C`<*.c>\*(C'\fR. Usually, this means that you supplied a \f(CW\*(C`glob\*(C'\fR
+pattern that caused the external program to fail and exit with a
+nonzero status. If the message indicates that the abnormal exit
+resulted in a coredump, this may also mean that your csh (C shell)
+is broken. If so, you should change all of the csh-related variables
+in config.sh: If you have tcsh, make the variables refer to it as
+if it were csh (e.g. \f(CW\*(C`full_csh=\*(Aq/usr/bin/tcsh\*(Aq\*(C'\fR); otherwise, make them
+all empty (except that \f(CW\*(C`d_csh\*(C'\fR should be \f(CW\*(Aqundef\*(Aq\fR) so that Perl will
+think csh is missing. In either case, after editing config.sh, run
+\&\f(CW\*(C`./Configure \-S\*(C'\fR and rebuild Perl.
+.IP "Glob not terminated" 4
+.IX Item "Glob not terminated"
+(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 finding it. Chances are you left some needed parentheses out
+earlier in the line, and you really meant a "less than".
+.IP "gmtime(%f) failed" 4
+.IX Item "gmtime(%f) failed"
+(W overflow) You called \f(CW\*(C`gmtime\*(C'\fR with a number that it could not handle:
+too large, too small, or NaN. The returned value is \f(CW\*(C`undef\*(C'\fR.
+.IP "gmtime(%f) too large" 4
+.IX Item "gmtime(%f) too large"
+(W overflow) You called \f(CW\*(C`gmtime\*(C'\fR with a number that was larger than
+it can reliably handle and \f(CW\*(C`gmtime\*(C'\fR probably returned the wrong
+date. This warning is also triggered with NaN (the special
+not-a-number value).
+.IP "gmtime(%f) too small" 4
+.IX Item "gmtime(%f) too small"
+(W overflow) You called \f(CW\*(C`gmtime\*(C'\fR with a number that was smaller than
+it can reliably handle and \f(CW\*(C`gmtime\*(C'\fR probably returned the wrong date.
+.IP "Got an error from DosAllocMem" 4
+.IX Item "Got an error from DosAllocMem"
+(P) An error peculiar to OS/2. Most probably you're using an obsolete
+version of Perl, and this should not happen anyway.
+.IP "goto must have label" 4
+.IX Item "goto must have label"
+(F) Unlike with "next" or "last", you're not allowed to goto an
+unspecified destination. See "goto" in perlfunc.
+.IP "Goto undefined subroutine%s" 4
+.IX Item "Goto undefined subroutine%s"
+(F) You tried to call a subroutine with \f(CW\*(C`goto &sub\*(C'\fR syntax, but
+the indicated subroutine hasn't been defined, or if it was, it
+has since been undefined.
+.IP "Group name must start with a non-digit word character in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Group name must start with a non-digit word character in regex; marked by <--\ HERE in m/%s/"
+(F) Group names must follow the rules for perl identifiers, meaning
+they must start with a non-digit word character. A common cause of
+this error is using (?&0) instead of (?0). See perlre.
+.IP "()\-group starts with a count" 4
+.IX Item "()-group starts with a count"
+(F) A ()\-group started with a count. A count is supposed to follow
+something: a template character or a ()\-group. See "pack" in perlfunc.
+.ie n .IP "%s had compilation errors." 4
+.el .IP "\f(CW%s\fR had compilation errors." 4
+.IX Item "%s had compilation errors."
+(F) The final summary message when a \f(CW\*(C`perl \-c\*(C'\fR fails.
+.ie n .IP "Had to create %s unexpectedly" 4
+.el .IP "Had to create \f(CW%s\fR unexpectedly" 4
+.IX Item "Had to create %s unexpectedly"
+(S internal) A routine asked for a symbol from a symbol table that ought
+to have existed already, but for some reason it didn't, and had to be
+created on an emergency basis to prevent a core dump.
+.ie n .IP "%s has too many errors" 4
+.el .IP "\f(CW%s\fR has too many errors" 4
+.IX Item "%s has too many errors"
+(F) The parser has given up trying to parse the program after 10 errors.
+Further error messages would likely be uninformative.
+.IP "Hexadecimal float: exponent overflow" 4
+.IX Item "Hexadecimal float: exponent overflow"
+(W overflow) The hexadecimal floating point has a larger exponent
+than the floating point supports.
+.IP "Hexadecimal float: exponent underflow" 4
+.IX Item "Hexadecimal float: exponent underflow"
+(W overflow) The hexadecimal floating point has a smaller exponent
+than the floating point supports. With the IEEE 754 floating point,
+this may also mean that the subnormals (formerly known as denormals)
+are being used, which may or may not be an error.
+.IP "Hexadecimal float: internal error (%s)" 4
+.IX Item "Hexadecimal float: internal error (%s)"
+(F) Something went horribly bad in hexadecimal float handling.
+.IP "Hexadecimal float: mantissa overflow" 4
+.IX Item "Hexadecimal float: mantissa overflow"
+(W overflow) The hexadecimal floating point literal had more bits in
+the mantissa (the part between the 0x and the exponent, also known as
+the fraction or the significand) than the floating point supports.
+.IP "Hexadecimal float: precision loss" 4
+.IX Item "Hexadecimal float: precision loss"
+(W overflow) The hexadecimal floating point had internally more
+digits than could be output. This can be caused by unsupported
+long double formats, or by 64\-bit integers not being available
+(needed to retrieve the digits under some configurations).
+.IP "Hexadecimal float: unsupported long double format" 4
+.IX Item "Hexadecimal float: unsupported long double format"
+(F) You have configured Perl to use long doubles but
+the internals of the long double format are unknown;
+therefore the hexadecimal float output is impossible.
+.IP "Hexadecimal number > 0xffffffff non-portable" 4
+.IX Item "Hexadecimal number > 0xffffffff non-portable"
+(W portable) The hexadecimal number you specified is larger than 2**32\-1
+(4294967295) and therefore non-portable between systems. See
+perlport for more on portability concerns.
+.IP "Identifier too long" 4
+.IX Item "Identifier too long"
+(F) Perl limits identifiers (names for variables, functions, etc.) to
+about 250 characters for simple names, and somewhat more for compound
+names (like \f(CW$A::B\fR). You've exceeded Perl's limits. Future versions
+of Perl are likely to eliminate these arbitrary limitations.
+.IP "Ignoring zero length \eN{} in character class in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Ignoring zero length N{} in character class in regex; marked by <--\ HERE in m/%s/"
+(W regexp) Named Unicode character escapes (\f(CW\*(C`\eN{...}\*(C'\fR) may return a
+zero-length sequence. When such an escape is used in a character
+class its behavior is not well defined. Check that the correct
+escape has been used, and the correct charname handler is in scope.
+.ie n .IP "Illegal %s digit '%c' ignored" 4
+.el .IP "Illegal \f(CW%s\fR digit '%c' ignored" 4
+.IX Item "Illegal %s digit '%c' ignored"
+(W digit) Here \f(CW%s\fR is one of "binary", "octal", or "hex".
+You may have tried to use a digit other than one that is legal for the
+given type, such as only 0 and 1 for binary. For octals, this is raised
+only if the illegal character is an '8' or '9'. For hex, 'A' \- 'F' and
+\&'a' \- 'f' are legal.
+Interpretation of the number stopped just before the offending digit or
+character.
+.IP "Illegal binary digit '%c'" 4
+.IX Item "Illegal binary digit '%c'"
+(F) You used a digit other than 0 or 1 in a binary number.
+.ie n .IP "Illegal character after '_' in prototype for %s : %s" 4
+.el .IP "Illegal character after '_' in prototype for \f(CW%s\fR : \f(CW%s\fR" 4
+.IX Item "Illegal character after '_' in prototype for %s : %s"
+(W illegalproto) An illegal character was found in a prototype
+declaration. The '_' in a prototype must be followed by a ';',
+indicating the rest of the parameters are optional, or one of '@'
+or '%', since those two will accept 0 or more final parameters.
+.IP "Illegal character \e%o (carriage return)" 4
+.IX Item "Illegal character %o (carriage return)"
+(F) Perl normally treats carriage returns in the program text as
+it would any other whitespace, which means you should never see
+this error when Perl was built using standard options. For some
+reason, your version of Perl appears to have been built without
+this support. Talk to your Perl administrator.
+.IP "Illegal character following sigil in a subroutine signature" 4
+.IX Item "Illegal character following sigil in a subroutine signature"
+(F) A parameter in a subroutine signature contained an unexpected character
+following the \f(CW\*(C`$\*(C'\fR, \f(CW\*(C`@\*(C'\fR or \f(CW\*(C`%\*(C'\fR sigil character. Normally the sigil
+should be followed by the variable name or \f(CW\*(C`=\*(C'\fR etc. Perhaps you are
+trying use a prototype while in the scope of \f(CW\*(C`use feature \*(Aqsignatures\*(Aq\*(C'\fR?
+For example:
+.Sp
+.Vb 1
+\& sub foo ($$) {} # legal \- a prototype
+\&
+\& use feature \*(Aqsignatures;
+\& sub foo ($$) {} # illegal \- was expecting a signature
+\& sub foo ($a, $b)
+\& :prototype($$) {} # legal
+.Ve
+.ie n .IP "Illegal character in prototype for %s : %s" 4
+.el .IP "Illegal character in prototype for \f(CW%s\fR : \f(CW%s\fR" 4
+.IX Item "Illegal character in prototype for %s : %s"
+(W illegalproto) An illegal character was found in a prototype declaration.
+Legal characters in prototypes are $, @, %, *, ;, [, ], &, \e, and +.
+Perhaps you were trying to write a subroutine signature but didn't enable
+that feature first (\f(CW\*(C`use feature \*(Aqsignatures\*(Aq\*(C'\fR), so your signature was
+instead interpreted as a bad prototype.
+.IP "Illegal declaration of anonymous subroutine" 4
+.IX Item "Illegal declaration of anonymous subroutine"
+(F) When using the \f(CW\*(C`sub\*(C'\fR keyword to construct an anonymous subroutine,
+you must always specify a block of code. See perlsub.
+.ie n .IP "Illegal declaration of subroutine %s" 4
+.el .IP "Illegal declaration of subroutine \f(CW%s\fR" 4
+.IX Item "Illegal declaration of subroutine %s"
+(F) A subroutine was not declared correctly. See perlsub.
+.IP "Illegal division by zero" 4
+.IX Item "Illegal division by zero"
+(F) You tried to divide a number by 0. Either something was wrong in
+your logic, or you need to put a conditional in to guard against
+meaningless input.
+.IP "Illegal modulus zero" 4
+.IX Item "Illegal modulus zero"
+(F) You tried to divide a number by 0 to get the remainder. Most
+numbers don't take to this kindly.
+.IP "Illegal number of bits in vec" 4
+.IX Item "Illegal number of bits in vec"
+(F) The number of bits in \fBvec()\fR (the third argument) must be a power of
+two from 1 to 32 (or 64, if your platform supports that).
+.IP "Illegal octal digit '%c'" 4
+.IX Item "Illegal octal digit '%c'"
+(F) You used an 8 or 9 in an octal number.
+.IP "Illegal operator following parameter in a subroutine signature" 4
+.IX Item "Illegal operator following parameter in a subroutine signature"
+(F) A parameter in a subroutine signature, was followed by something
+other than \f(CW\*(C`=\*(C'\fR introducing a default, \f(CW\*(C`,\*(C'\fR or \f(CW\*(C`)\*(C'\fR.
+.Sp
+.Vb 5
+\& use feature \*(Aqsignatures\*(Aq;
+\& sub foo ($=1) {} # legal
+\& sub foo ($a = 1) {} # legal
+\& sub foo ($a += 1) {} # illegal
+\& sub foo ($a == 1) {} # illegal
+.Ve
+.IP "Illegal pattern in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Illegal pattern in regex; marked by <--\ HERE in m/%s/"
+(F) You wrote something like
+.Sp
+.Vb 1
+\& (?+foo)
+.Ve
+.Sp
+The \f(CW"+"\fR is valid only when followed by digits, indicating a
+capturing group. See
+\&\f(CW\*(C`(?\fR\f(CIPARNO\fR\f(CW)\*(C'\fR.
+.IP "Illegal suidscript" 4
+.IX Item "Illegal suidscript"
+(F) The script run under suidperl was somehow illegal.
+.IP "Illegal switch in PERL5OPT: \-%c" 4
+.IX Item "Illegal switch in PERL5OPT: -%c"
+(X) The PERL5OPT environment variable may only be used to set the
+following switches: \fB\-[CDIMUdmtw]\fR.
+.IP "Illegal user-defined property name" 4
+.IX Item "Illegal user-defined property name"
+(F) You specified a Unicode-like property name in a regular expression
+pattern (using \f(CW\*(C`\ep{}\*(C'\fR or \f(CW\*(C`\eP{}\*(C'\fR) that Perl knows isn't an official
+Unicode property, and was likely meant to be a user-defined property
+name, but it can't be one of those, as they must begin with either \f(CW\*(C`In\*(C'\fR
+or \f(CW\*(C`Is\*(C'\fR. Check the spelling. See also
+"Can't find Unicode property definition "%s"".
+.IP "Ill-formed CRTL environ value ""%s""" 4
+.IX Item "Ill-formed CRTL environ value ""%s"""
+(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's
+internal environ array, and encountered an element without the \f(CW\*(C`=\*(C'\fR
+delimiter used to separate keys from values. The element is ignored.
+.IP "Ill-formed message in prime_env_iter: |%s|" 4
+.IX Item "Ill-formed message in prime_env_iter: |%s|"
+(W internal) A warning peculiar to VMS. Perl tried to read a logical
+name or CLI symbol definition when preparing to iterate over \f(CW%ENV\fR, and
+didn't see the expected delimiter between key and value, so the line was
+ignored.
+.ie n .IP "(in cleanup) %s" 4
+.el .IP "(in cleanup) \f(CW%s\fR" 4
+.IX Item "(in cleanup) %s"
+(W misc) This prefix usually indicates that a \fBDESTROY()\fR method raised
+the indicated exception. Since destructors are usually called by the
+system at arbitrary points during execution, and often a vast number of
+times, the warning is issued only once for any number of failures that
+would otherwise result in the same message being repeated.
+.Sp
+Failure of user callbacks dispatched using the \f(CW\*(C`G_KEEPERR\*(C'\fR flag could
+also result in this warning. See "G_KEEPERR" in perlcall.
+.ie n .IP "Implicit use of @_ in %s with signatured subroutine is experimental" 4
+.el .IP "Implicit use of \f(CW@_\fR in \f(CW%s\fR with signatured subroutine is experimental" 4
+.IX Item "Implicit use of @_ in %s with signatured subroutine is experimental"
+(S experimental::args_array_with_signatures) An expression that implicitly
+involves the \f(CW@_\fR arguments array was found in a subroutine that uses a
+signature. This is experimental because the interaction between the
+arguments array and parameter handling via signatures is not guaranteed
+to remain stable in any future version of Perl, and such code should be
+avoided.
+.IP "Incomplete expression within '(?[ ])' in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Incomplete expression within '(?[ ])' in regex; marked by <--\ HERE in m/%s/"
+(F) There was a syntax error within the \f(CW\*(C`(?[ ])\*(C'\fR. This can happen if the
+expression inside the construct was completely empty, or if there are
+too many or few operands for the number of operators. Perl is not smart
+enough to give you a more precise indication as to what is wrong.
+.IP "Inconsistent hierarchy during C3 merge of class '%s': merging failed on parent '%s'" 4
+.IX Item "Inconsistent hierarchy during C3 merge of class '%s': merging failed on parent '%s'"
+(F) The method resolution order (MRO) of the given class is not
+C3\-consistent, and you have enabled the C3 MRO for this class. See the C3
+documentation in mro for more information.
+.ie n .IP "Indentation on line %d of here-doc doesn't match delimiter" 4
+.el .IP "Indentation on line \f(CW%d\fR of here-doc doesn't match delimiter" 4
+.IX Item "Indentation on line %d of here-doc doesn't match delimiter"
+(F) You have an indented here-document where one or more of its lines
+have whitespace at the beginning that does not match the closing
+delimiter.
+.Sp
+For example, line 2 below is wrong because it does not have at least
+2 spaces, but lines 1 and 3 are fine because they have at least 2:
+.Sp
+.Vb 7
+\& if ($something) {
+\& print <<~EOF;
+\& Line 1
+\& Line 2 not
+\& Line 3
+\& EOF
+\& }
+.Ve
+.Sp
+Note that tabs and spaces are compared strictly, meaning 1 tab will
+not match 8 spaces.
+.IP "Infinite recursion in regex" 4
+.IX Item "Infinite recursion in regex"
+(F) You used a pattern that references itself without consuming any input
+text. You should check the pattern to ensure that recursive patterns
+either consume text or fail.
+.IP "Infinite recursion in user-defined property" 4
+.IX Item "Infinite recursion in user-defined property"
+(F) A user-defined property ("User-Defined Character
+Properties" in perlunicode) can depend on the definitions of other user-defined
+properties. If the chain of dependencies leads back to this property,
+infinite recursion would occur, were it not for the check that raised
+this error.
+.Sp
+Restructure your property definitions to avoid this.
+.IP "Infinite recursion via empty pattern" 4
+.IX Item "Infinite recursion via empty pattern"
+(F) You tried to use the empty pattern inside of a regex code block,
+for instance \f(CW\*(C`/(?{ s!!! })/\*(C'\fR, which resulted in re-executing
+the same pattern, which is an infinite loop which is broken by
+throwing an exception.
+.IP "Initialization of state variables in list currently forbidden" 4
+.IX Item "Initialization of state variables in list currently forbidden"
+(F) \f(CW\*(C`state\*(C'\fR only permits initializing a single variable, specified
+without parentheses. So \f(CW\*(C`state $a = 42\*(C'\fR and \f(CW\*(C`state @a = qw(a b c)\*(C'\fR are
+allowed, but not \f(CW\*(C`state ($a) = 42\*(C'\fR or \f(CW\*(C`(state $a) = 42\*(C'\fR. To initialize
+more than one \f(CW\*(C`state\*(C'\fR variable, initialize them one at a time.
+.IP "%%s[%s] in scalar context better written as $%s[%s]" 4
+.IX Item "%%s[%s] in scalar context better written as $%s[%s]"
+(W syntax) In scalar context, you've used an array index/value slice
+(indicated by %) to select a single element of an array. Generally
+it's better to ask for a scalar value (indicated by $). The difference
+is that \f(CW$foo[&bar]\fR always behaves like a scalar, both in the value it
+returns and when evaluating its argument, while \f(CW%foo[&bar]\fR provides
+a list context to its subscript, which can do weird things if you're
+expecting only one subscript. When called in list context, it also
+returns the index (what \f(CW&bar\fR returns) in addition to the value.
+.IP "%%s{%s} in scalar context better written as $%s{%s}" 4
+.IX Item "%%s{%s} in scalar context better written as $%s{%s}"
+(W syntax) In scalar context, you've used a hash key/value slice
+(indicated by %) to select a single element of a hash. Generally it's
+better to ask for a scalar value (indicated by $). The difference
+is that \f(CW$foo{&bar}\fR always behaves like a scalar, both in the value
+it returns and when evaluating its argument, while \f(CW@foo{&bar}\fR and
+provides a list context to its subscript, which can do weird things
+if you're expecting only one subscript. When called in list context,
+it also returns the key in addition to the value.
+.ie n .IP "Insecure dependency in %s" 4
+.el .IP "Insecure dependency in \f(CW%s\fR" 4
+.IX Item "Insecure dependency in %s"
+(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 \fB\-T\fR to turn it on explicitly. The
+tainting mechanism labels all data that's derived directly or indirectly
+from the user, who is considered to be unworthy of your trust. If any
+such data is used in a "dangerous" operation, you get this error. See
+perlsec for more information.
+.ie n .IP "Insecure directory in %s" 4
+.el .IP "Insecure directory in \f(CW%s\fR" 4
+.IX Item "Insecure directory in %s"
+(F) You can't use \fBsystem()\fR, \fBexec()\fR, or a piped open in a setuid or
+setgid script if \f(CW$ENV{PATH}\fR contains a directory that is writable by
+the world. Also, the PATH must not contain any relative directory.
+See perlsec.
+.ie n .IP "Insecure $ENV{%s} while running %s" 4
+.el .IP "Insecure \f(CW$ENV\fR{%s} while running \f(CW%s\fR" 4
+.IX Item "Insecure $ENV{%s} while running %s"
+(F) You can't use \fBsystem()\fR, \fBexec()\fR, or a piped open in a setuid or
+setgid script if any of \f(CW$ENV{PATH}\fR, \f(CW$ENV{IFS}\fR, \f(CW$ENV{CDPATH}\fR,
+\&\f(CW$ENV{ENV}\fR, \f(CW$ENV{BASH_ENV}\fR or \f(CW$ENV{TERM}\fR are derived from data
+supplied (or potentially supplied) by the user. The script must set
+the path to a known value, using trustworthy data. See perlsec.
+.ie n .IP "Insecure user-defined property %s" 4
+.el .IP "Insecure user-defined property \f(CW%s\fR" 4
+.IX Item "Insecure user-defined property %s"
+(F) Perl detected tainted data when trying to compile a regular
+expression that contains a call to a user-defined character property
+function, i.e. \f(CW\*(C`\ep{IsFoo}\*(C'\fR or \f(CW\*(C`\ep{InFoo}\*(C'\fR.
+See "User-Defined Character Properties" in perlunicode and perlsec.
+.ie n .IP "Integer overflow in format string for %s" 4
+.el .IP "Integer overflow in format string for \f(CW%s\fR" 4
+.IX Item "Integer overflow in format string for %s"
+(F) The indexes and widths specified in the format string of \f(CWprintf()\fR
+or \f(CWsprintf()\fR are too large. The numbers must not overflow the size of
+integers for your architecture.
+.ie n .IP "Integer overflow in %s number" 4
+.el .IP "Integer overflow in \f(CW%s\fR number" 4
+.IX Item "Integer overflow in %s number"
+(S overflow) The hexadecimal, octal or binary number you have specified
+either as a literal or as an argument to \fBhex()\fR or \fBoct()\fR is too big for
+your architecture, and has been converted to a floating point number.
+On a 32\-bit architecture the largest hexadecimal, octal or binary number
+representable without overflow is 0xFFFFFFFF, 037777777777, or
+0b11111111111111111111111111111111 respectively. Note that Perl
+transparently promotes all numbers to a floating point representation
+internally\-\-subject to loss of precision errors in subsequent
+operations.
+.IP "Integer overflow in srand" 4
+.IX Item "Integer overflow in srand"
+(S overflow) The number you have passed to srand is too big to fit
+in your architecture's integer representation. The number has been
+replaced with the largest integer supported (0xFFFFFFFF on 32\-bit
+architectures). This means you may be getting less randomness than
+you expect, because different random seeds above the maximum will
+return the same sequence of random numbers.
+.IP "Integer overflow in version" 4
+.IX Item "Integer overflow in version"
+.PD 0
+.ie n .IP "Integer overflow in version %d" 4
+.el .IP "Integer overflow in version \f(CW%d\fR" 4
+.IX Item "Integer overflow in version %d"
+.PD
+(W overflow) Some portion of a version initialization is too large for
+the size of integers for your architecture. This is not a warning
+because there is no rational reason for a version to try and use an
+element larger than typically 2**32. This is usually caused by trying
+to use some odd mathematical operation as a version, like 100/9.
+.IP "Internal disaster in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Internal disaster in regex; marked by <--\ HERE in m/%s/"
+(P) Something went badly wrong in the regular expression parser.
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Internal inconsistency in tracking vforks" 4
+.IX Item "Internal inconsistency in tracking vforks"
+(S) A warning peculiar to VMS. Perl keeps track of the number of times
+you've called \f(CW\*(C`fork\*(C'\fR and \f(CW\*(C`exec\*(C'\fR, to determine whether the current call
+to \f(CW\*(C`exec\*(C'\fR should affect the current script or a subprocess (see
+"exec LIST" in perlvms). Somehow, this count has become scrambled, so
+Perl is making a guess and treating this \f(CW\*(C`exec\*(C'\fR as a request to
+terminate the Perl script and execute the specified command.
+.IP "internal %<num>p might conflict with future printf extensions" 4
+.IX Item "internal %<num>p might conflict with future printf extensions"
+(S internal) Perl's internal routine that handles \f(CW\*(C`printf\*(C'\fR and \f(CW\*(C`sprintf\*(C'\fR
+formatting follows a slightly different set of rules when called from
+C or XS code. Specifically, formats consisting of digits followed
+by "p" (e.g., "%7p") are reserved for future use. If you see this
+message, then an XS module tried to call that routine with one such
+reserved format.
+.IP "Internal urp in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Internal urp in regex; marked by <--\ HERE in m/%s/"
+(P) Something went badly awry in the regular expression parser. The
+<\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.ie n .IP "%s (...) interpreted as function" 4
+.el .IP "\f(CW%s\fR (...) interpreted as function" 4
+.IX Item "%s (...) interpreted as function"
+(W syntax) 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 found inside the parentheses. See
+"Terms and List Operators (Leftward)" in perlop.
+.IP "In '(?...)', the '(' and '?' must be adjacent in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "In '(?...)', the '(' and '?' must be adjacent in regex; marked by <--\ HERE in m/%s/"
+(F) The two-character sequence \f(CW"(?"\fR in this context in a regular
+expression pattern should be an indivisible token, with nothing
+intervening between the \f(CW"("\fR and the \f(CW"?"\fR, but you separated them
+with whitespace.
+.IP "In '(*...)', the '(' and '*' must be adjacent in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "In '(*...)', the '(' and '*' must be adjacent in regex; marked by <--\ HERE in m/%s/"
+(F) The two-character sequence \f(CW"(*"\fR in this context in a regular
+expression pattern should be an indivisible token, with nothing
+intervening between the \f(CW"("\fR and the \f(CW"*"\fR, but you separated them.
+Fix the pattern and retry.
+.ie n .IP "Invalid %s attribute: %s" 4
+.el .IP "Invalid \f(CW%s\fR attribute: \f(CW%s\fR" 4
+.IX Item "Invalid %s attribute: %s"
+(F) The indicated attribute for a subroutine or variable was not recognized
+by Perl or by a user-supplied handler. See attributes.
+.ie n .IP "Invalid %s attributes: %s" 4
+.el .IP "Invalid \f(CW%s\fR attributes: \f(CW%s\fR" 4
+.IX Item "Invalid %s attributes: %s"
+(F) The indicated attributes for a subroutine or variable were not
+recognized by Perl or by a user-supplied handler. See attributes.
+.IP "Invalid character in charnames alias definition; marked by <\-\-\ HERE in '%s" 4
+.IX Item "Invalid character in charnames alias definition; marked by <--\ HERE in '%s"
+(F) You tried to create a custom alias for a character name, with
+the \f(CW\*(C`:alias\*(C'\fR option to \f(CW\*(C`use charnames\*(C'\fR and the specified character in
+the indicated name isn't valid. See "CUSTOM ALIASES" in charnames.
+.ie n .IP "Invalid \e0 character in %s for %s: %s\e0%s" 4
+.el .IP "Invalid \e0 character in \f(CW%s\fR for \f(CW%s:\fR \f(CW%s\fR\e0%s" 4
+.IX Item "Invalid 0 character in %s for %s: %s0%s"
+(W syscalls) Embedded \e0 characters in pathnames or other system call
+arguments produce a warning as of 5.20. The parts after the \e0 were
+formerly ignored by system calls.
+.IP "Invalid character in \eN{...}; marked by <\-\-\ HERE in \eN{%s}" 4
+.IX Item "Invalid character in N{...}; marked by <--\ HERE in N{%s}"
+(F) Only certain characters are valid for character names. The
+indicated one isn't. See "CUSTOM ALIASES" in charnames.
+.ie n .IP "Invalid conversion in %s: ""%s""" 4
+.el .IP "Invalid conversion in \f(CW%s:\fR ""%s""" 4
+.IX Item "Invalid conversion in %s: ""%s"""
+(W printf) Perl does not understand the given format conversion. See
+"sprintf" in perlfunc.
+.IP "Invalid escape in the specified encoding in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Invalid escape in the specified encoding in regex; marked by <--\ HERE in m/%s/"
+(W regexp)(F) The numeric escape (for example \f(CW\*(C`\exHH\*(C'\fR) of value < 256
+didn't correspond to a single character through the conversion
+from the encoding specified by the encoding pragma.
+The escape was replaced with REPLACEMENT CHARACTER (U+FFFD)
+instead, except within \f(CW\*(C`(?[\ \ \ ])\*(C'\fR, where it is a fatal error.
+The <\-\-\ HERE shows whereabouts in the regular expression the
+escape was discovered.
+.IP "Invalid hexadecimal number in \eN{U+...}" 4
+.IX Item "Invalid hexadecimal number in N{U+...}"
+.PD 0
+.IP "Invalid hexadecimal number in \eN{U+...} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Invalid hexadecimal number in N{U+...} in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) The character constant represented by \f(CW\*(C`...\*(C'\fR is not a valid hexadecimal
+number. Either it is empty, or you tried to use a character other than
+0 \- 9 or A \- F, a \- f in a hexadecimal number.
+.ie n .IP "Invalid module name %s with \-%c option: contains single ':'" 4
+.el .IP "Invalid module name \f(CW%s\fR with \-%c option: contains single ':'" 4
+.IX Item "Invalid module name %s with -%c option: contains single ':'"
+(F) The module argument to perl's \fB\-m\fR and \fB\-M\fR command-line options
+cannot contain single colons in the module name, but only in the
+arguments after "=". In other words, \fB\-MFoo::Bar=:baz\fR is ok, but
+\&\fB\-MFoo:Bar=baz\fR is not.
+.IP "Invalid mro name: '%s'" 4
+.IX Item "Invalid mro name: '%s'"
+(F) You tried to \f(CW\*(C`mro::set_mro("classname", "foo")\*(C'\fR or \f(CW\*(C`use mro \*(Aqfoo\*(Aq\*(C'\fR,
+where \f(CW\*(C`foo\*(C'\fR is not a valid method resolution order (MRO). Currently,
+the only valid ones supported are \f(CW\*(C`dfs\*(C'\fR and \f(CW\*(C`c3\*(C'\fR, unless you have loaded
+a module that is a MRO plugin. See mro and perlmroapi.
+.IP "Invalid negative number (%s) in chr" 4
+.IX Item "Invalid negative number (%s) in chr"
+(W utf8) You passed a negative number to \f(CW\*(C`chr\*(C'\fR. Negative numbers are
+not valid character numbers, so it returns the Unicode replacement
+character (U+FFFD).
+.IP "Invalid number '%s' for \-C option." 4
+.IX Item "Invalid number '%s' for -C option."
+(F) You supplied a number to the \-C option that either has extra leading
+zeroes or overflows perl's unsigned integer representation.
+.IP "invalid option \-D%c, use \-D'' to see choices" 4
+.IX Item "invalid option -D%c, use -D'' to see choices"
+(S debugging) Perl was called with invalid debugger flags. Call perl
+with the \fB\-D\fR option with no flags to see the list of acceptable values.
+See also "\-Dletters" in perlrun.
+.IP "Invalid quantifier in {,} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Invalid quantifier in {,} in regex; marked by <--\ HERE in m/%s/"
+(F) The pattern looks like a {min,max} quantifier, but the min or max
+could not be parsed as a valid number \- either it has leading zeroes,
+or it represents too big a number to cope with. The <\-\-\ HERE shows
+where in the regular expression the problem was discovered. See perlre.
+.IP "Invalid [] range ""%s"" in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Invalid [] range ""%s"" in regex; marked by <--\ HERE in m/%s/"
+(F) The range specified in a character class had a minimum character
+greater than the maximum character. One possibility is that you forgot the
+\&\f(CW\*(C`{}\*(C'\fR from your ending \f(CW\*(C`\ex{}\*(C'\fR \- \f(CW\*(C`\ex\*(C'\fR without the curly braces can go only
+up to \f(CW\*(C`ff\*(C'\fR. The <\-\-\ HERE shows whereabouts in the regular expression the
+problem was discovered. See perlre.
+.IP "Invalid range ""%s"" in transliteration operator" 4
+.IX Item "Invalid range ""%s"" in transliteration operator"
+(F) The range specified in the tr/// or y/// operator had a minimum
+character greater than the maximum character. See perlop.
+.IP "Invalid reference to group in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Invalid reference to group in regex; marked by <--\ HERE in m/%s/"
+(F) The capture group you specified can't possibly exist because the
+number you used is not within the legal range of possible values for
+this machine.
+.ie n .IP "Invalid separator character %s in attribute list" 4
+.el .IP "Invalid separator character \f(CW%s\fR in attribute list" 4
+.IX Item "Invalid separator character %s in attribute list"
+(F) Something other than a colon or whitespace was seen between the
+elements of an attribute list. If the previous attribute had a
+parenthesised parameter list, perhaps that list was terminated too soon.
+See attributes.
+.ie n .IP "Invalid separator character %s in PerlIO layer specification %s" 4
+.el .IP "Invalid separator character \f(CW%s\fR in PerlIO layer specification \f(CW%s\fR" 4
+.IX Item "Invalid separator character %s in PerlIO layer specification %s"
+(W layer) When pushing layers onto the Perl I/O system, something other
+than a colon or whitespace was seen between the elements of a layer list.
+If the previous attribute had a parenthesised parameter list, perhaps that
+list was terminated too soon.
+.IP "Invalid strict version format (%s)" 4
+.IX Item "Invalid strict version format (%s)"
+(F) A version number did not meet the "strict" criteria for versions.
+A "strict" version number is a positive decimal number (integer or
+decimal-fraction) without exponentiation or else a dotted-decimal
+v\-string with a leading 'v' character and at least three components.
+The parenthesized text indicates which criteria were not met.
+See the version module for more details on allowed version formats.
+.ie n .IP "Invalid type '%s' in %s" 4
+.el .IP "Invalid type '%s' in \f(CW%s\fR" 4
+.IX Item "Invalid type '%s' in %s"
+(F) The given character is not a valid pack or unpack type.
+See "pack" in perlfunc.
+.Sp
+(W) The given character is not a valid pack or unpack type but used to be
+silently ignored.
+.IP "Invalid version format (%s)" 4
+.IX Item "Invalid version format (%s)"
+(F) A version number did not meet the "lax" criteria for versions.
+A "lax" version number is a positive decimal number (integer or
+decimal-fraction) without exponentiation or else a dotted-decimal
+v\-string. If the v\-string has fewer than three components, it
+must have a leading 'v' character. Otherwise, the leading 'v' is
+optional. Both decimal and dotted-decimal versions may have a
+trailing "alpha" component separated by an underscore character
+after a fractional or dotted-decimal component. The parenthesized
+text indicates which criteria were not met. See the version module
+for more details on allowed version formats.
+.IP "Invalid version object" 4
+.IX Item "Invalid version object"
+(F) The internal structure of the version object was invalid.
+Perhaps the internals were modified directly in some way or
+an arbitrary reference was blessed into the "version" class.
+.IP "In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <--\ HERE in m/%s/"
+.PD 0
+.IP "Inverting a character class which contains a multi-character sequence is illegal in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Inverting a character class which contains a multi-character sequence is illegal in regex; marked by <-- HERE in m/%s/"
+.PD
+(F) You wrote something like
+.Sp
+.Vb 2
+\& qr/\eP{name=KATAKANA LETTER AINU P}/
+\& qr/[^\ep{name=KATAKANA LETTER AINU P}]/
+.Ve
+.Sp
+This name actually evaluates to a sequence of two Katakana characters,
+not just a single one, and it is illegal to try to take the complement
+of a sequence. (Mathematically it would mean any sequence of characters
+from 0 to infinity in length that weren't these two in a row, and that
+is likely not of any real use.)
+.Sp
+(F) The two-character sequence \f(CW"(*"\fR in this context in a regular
+expression pattern should be an indivisible token, with nothing
+intervening between the \f(CW"("\fR and the \f(CW"*"\fR, but you separated them.
+.IP "ioctl is not implemented" 4
+.IX Item "ioctl is not implemented"
+(F) Your machine apparently doesn't implement \fBioctl()\fR, which is pretty
+strange for a machine that supports C.
+.ie n .IP "\fBioctl()\fR on unopened %s" 4
+.el .IP "\fBioctl()\fR on unopened \f(CW%s\fR" 4
+.IX Item "ioctl() on unopened %s"
+(W unopened) You tried \fBioctl()\fR on a filehandle that was never opened.
+Check your control flow and number of arguments.
+.IP "IO layers (like '%s') unavailable" 4
+.IX Item "IO layers (like '%s') unavailable"
+(F) Your Perl has not been configured to have PerlIO, and therefore
+you cannot use IO layers. To have PerlIO, Perl must be configured
+with 'useperlio'.
+.IP "IO::Socket::atmark not implemented on this architecture" 4
+.IX Item "IO::Socket::atmark not implemented on this architecture"
+(F) Your machine doesn't implement the \fBsockatmark()\fR functionality,
+neither as a system call nor an ioctl call (SIOCATMARK).
+.IP "'%s' is an unknown bound type in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "'%s' is an unknown bound type in regex; marked by <--\ HERE in m/%s/"
+(F) You used \f(CW\*(C`\eb{...}\*(C'\fR or \f(CW\*(C`\eB{...}\*(C'\fR and the \f(CW\*(C`...\*(C'\fR is not known to
+Perl. The current valid ones are given in
+"\eb{}, \eb, \eB{}, \eB" in perlrebackslash.
+.IP "%s() isn't allowed on :utf8 handles" 4
+.IX Item "%s() isn't allowed on :utf8 handles"
+(F) The \fBsysread()\fR, \fBrecv()\fR, \fBsyswrite()\fR and \fBsend()\fR operators are
+not allowed on handles that have the \f(CW\*(C`:utf8\*(C'\fR layer, either explicitly, or
+implicitly, eg., with the \f(CW:encoding(UTF\-16LE)\fR layer.
+.Sp
+Previously \fBsysread()\fR and \fBrecv()\fR currently use only the \f(CW\*(C`:utf8\*(C'\fR flag for the stream,
+ignoring the actual layers. Since \fBsysread()\fR and \fBrecv()\fR did no UTF\-8
+validation they can end up creating invalidly encoded scalars.
+.Sp
+Similarly, \fBsyswrite()\fR and \fBsend()\fR used only the \f(CW\*(C`:utf8\*(C'\fR flag, otherwise ignoring
+any layers. If the flag is set, both wrote the value UTF\-8 encoded, even if
+the layer is some different encoding, such as the example above.
+.Sp
+Ideally, all of these operators would completely ignore the \f(CW\*(C`:utf8\*(C'\fR state,
+working only with bytes, but this would result in silently breaking existing
+code.
+.IP """%s"" is more clearly written simply as ""%s"" in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item """%s"" is more clearly written simply as ""%s"" in regex; marked by <--\ HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR or within \f(CW\*(C`(?[...])\*(C'\fR)
+.Sp
+You specified a character that has the given plainer way of writing it, and
+which is also portable to platforms running with different character sets.
+.IP "$* is no longer supported as of Perl 5.30" 4
+.IX Item "$* is no longer supported as of Perl 5.30"
+(F) The special variable \f(CW$*\fR, deprecated in older perls, was removed in
+5.10.0, is no longer supported and is a fatal error as of Perl 5.30. In
+previous versions of perl the use of \f(CW$*\fR enabled or disabled multi-line
+matching within a string.
+.Sp
+Instead of using \f(CW$*\fR you should use the \f(CW\*(C`/m\*(C'\fR (and maybe \f(CW\*(C`/s\*(C'\fR) regexp
+modifiers. You can enable \f(CW\*(C`/m\*(C'\fR for a lexical scope (even a whole file)
+with \f(CW\*(C`use re \*(Aq/m\*(Aq\*(C'\fR. (In older versions: when \f(CW$*\fR was set to a true value
+then all regular expressions behaved as if they were written using \f(CW\*(C`/m\*(C'\fR.)
+.Sp
+Use of this variable will be a fatal error in Perl 5.30.
+.IP "$# is no longer supported as of Perl 5.30" 4
+.IX Item "$# is no longer supported as of Perl 5.30"
+(F) The special variable \f(CW$#\fR, deprecated in older perls, was removed as of
+5.10.0, is no longer supported and is a fatal error as of Perl 5.30. You
+should use the printf/sprintf functions instead.
+.IP "'%s' is not a code reference" 4
+.IX Item "'%s' is not a code reference"
+(W overload) The second (fourth, sixth, ...) argument of
+overload::constant needs to be a code reference. Either
+an anonymous subroutine, or a reference to a subroutine.
+.IP "'%s' is not an overloadable type" 4
+.IX Item "'%s' is not an overloadable type"
+(W overload) You tried to overload a constant type the overload package is
+unaware of.
+.IP "'%s' is not recognised as a builtin function" 4
+.IX Item "'%s' is not recognised as a builtin function"
+(F) An attempt was made to \f(CW\*(C`use\*(C'\fR the builtin pragma module to create
+a lexical alias for an unknown function name.
+.IP "\-i used with no filenames on the command line, reading from STDIN" 4
+.IX Item "-i used with no filenames on the command line, reading from STDIN"
+(S inplace) The \f(CW\*(C`\-i\*(C'\fR option was passed on the command line, indicating
+that the script is intended to edit files in place, but no files were
+given. This is usually a mistake, since editing STDIN in place doesn't
+make sense, and can be confusing because it can make perl look like
+it is hanging when it is really just trying to read from STDIN. You
+should either pass a filename to edit, or remove \f(CW\*(C`\-i\*(C'\fR from the command
+line. See perlrun for more details.
+.IP "Junk on end of regexp in regex m/%s/" 4
+.IX Item "Junk on end of regexp in regex m/%s/"
+(P) The regular expression parser is confused.
+.IP "\eK not permitted in lookahead/lookbehind in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/%s/"
+(F) Your regular expression used \f(CW\*(C`\eK\*(C'\fR in a lookahead or lookbehind
+assertion, which currently isn't permitted.
+.Sp
+This may change in the future, see Support \eK in
+lookarounds <https://github.com/Perl/perl5/issues/18134>.
+.ie n .IP "Label not found for ""last %s""" 4
+.el .IP "Label not found for ""last \f(CW%s\fR""" 4
+.IX Item "Label not found for ""last %s"""
+(F) You named a loop to break out of, but you're not currently in a loop
+of that name, not even if you count where you were called from. See
+"last" in perlfunc.
+.ie n .IP "Label not found for ""next %s""" 4
+.el .IP "Label not found for ""next \f(CW%s\fR""" 4
+.IX Item "Label not found for ""next %s"""
+(F) You named a loop to continue, but you're not currently in a loop of
+that name, not even if you count where you were called from. See
+"last" in perlfunc.
+.ie n .IP "Label not found for ""redo %s""" 4
+.el .IP "Label not found for ""redo \f(CW%s\fR""" 4
+.IX Item "Label not found for ""redo %s"""
+(F) You named a loop to restart, but you're not currently in a loop of
+that name, not even if you count where you were called from. See
+"last" in perlfunc.
+.ie n .IP "leaving effective %s failed" 4
+.el .IP "leaving effective \f(CW%s\fR failed" 4
+.IX Item "leaving effective %s failed"
+(F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, switching the real and
+effective uids or gids failed.
+.IP "length/code after end of string in unpack" 4
+.IX Item "length/code after end of string in unpack"
+(F) While unpacking, the string buffer was already used up when an unpack
+length/code combination tried to obtain more data. This results in
+an undefined value for the length. See "pack" in perlfunc.
+.ie n .IP "\fBlength()\fR used on %s (did you mean ""scalar(%s)""?)" 4
+.el .IP "\fBlength()\fR used on \f(CW%s\fR (did you mean ""scalar(%s)""?)" 4
+.IX Item "length() used on %s (did you mean ""scalar(%s)""?)"
+(W syntax) You used \fBlength()\fR on either an array or a hash when you
+probably wanted a count of the items.
+.Sp
+Array size can be obtained by doing:
+.Sp
+.Vb 1
+\& scalar(@array);
+.Ve
+.Sp
+The number of items in a hash can be obtained by doing:
+.Sp
+.Vb 1
+\& scalar(keys %hash);
+.Ve
+.IP "Lexing code attempted to stuff non\-Latin\-1 character into Latin\-1 input" 4
+.IX 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 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.
+.IP "Lexing code internal error (%s)" 4
+.IX Item "Lexing code internal error (%s)"
+(F) Lexing code supplied by an extension violated the lexer's API in a
+detectable way.
+.ie n .IP "\fBlisten()\fR on closed socket %s" 4
+.el .IP "\fBlisten()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "listen() on closed socket %s"
+(W closed) You tried to do a listen on a closed socket. Did you forget
+to check the return value of your \fBsocket()\fR call? See
+"listen" in perlfunc.
+.IP "List form of piped open not implemented" 4
+.IX Item "List form of piped open not implemented"
+(F) On some platforms, notably Windows, the three-or-more-arguments
+form of \f(CW\*(C`open\*(C'\fR does not support pipes, such as \f(CW\*(C`open($pipe, \*(Aq|\-\*(Aq, @args)\*(C'\fR.
+Use the two-argument \f(CW\*(C`open($pipe, \*(Aq|prog arg1 arg2...\*(Aq)\*(C'\fR form instead.
+.IP "Literal vertical space in [] is illegal except under /x in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Literal vertical space in [] is illegal except under /x in regex; marked by <--\ HERE in m/%s/"
+(F) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR or within \f(CW\*(C`(?[...])\*(C'\fR)
+.Sp
+Likely you forgot the \f(CW\*(C`/x\*(C'\fR modifier or there was a typo in the pattern.
+For example, did you really mean to match a form-feed? If so, all the
+ASCII vertical space control characters are representable by escape
+sequences which won't present such a jarring appearance as your pattern
+does when displayed.
+.Sp
+.Vb 4
+\& \er carriage return
+\& \ef form feed
+\& \en line feed
+\& \ecK vertical tab
+.Ve
+.ie n .IP "%s: loadable library and perl binaries are mismatched (got %s handshake key %p, needed %p)" 4
+.el .IP "\f(CW%s:\fR loadable library and perl binaries are mismatched (got \f(CW%s\fR handshake key \f(CW%p\fR, needed \f(CW%p\fR)" 4
+.IX Item "%s: loadable library and perl binaries are mismatched (got %s handshake key %p, needed %p)"
+(P) A dynamic loading library \f(CW\*(C`.so\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR was being loaded into the
+process that was built against a different build of perl than the
+said library was compiled against. Reinstalling the XS module will
+likely fix this error.
+.ie n .IP "Locale '%s' contains (at least) the following characters which have unexpected meanings: %s The Perl program will use the expected meanings" 4
+.el .IP "Locale '%s' contains (at least) the following characters which have unexpected meanings: \f(CW%s\fR The Perl program will use the expected meanings" 4
+.IX Item "Locale '%s' contains (at least) the following characters which have unexpected meanings: %s The Perl program will use the expected meanings"
+(W locale) You are using the named UTF\-8 locale. UTF\-8 locales are
+expected to have very particular behavior, which most do. This message
+arises when perl found some departures from the expectations, and is
+notifying you that the expected behavior overrides these differences.
+In some cases the differences are caused by the locale definition being
+defective, but the most common causes of this warning are when there are
+ambiguities and conflicts in following the Standard, and the locale has
+chosen an approach that differs from Perl's.
+.Sp
+One of these is because that, contrary to the claims, Unicode is not
+completely locale insensitive. Turkish and some related languages
+have two types of \f(CW"I"\fR characters. One is dotted in both upper\- and
+lowercase, and the other is dotless in both cases. Unicode allows a
+locale to use either the Turkish rules, or the rules used in all other
+instances, where there is only one type of \f(CW"I"\fR, which is dotless in
+the uppercase, and dotted in the lower. The perl core does not (yet)
+handle the Turkish case, and this message warns you of that. Instead,
+the Unicode::Casing module allows you to mostly implement the Turkish
+casing rules.
+.Sp
+The other common cause is for the characters
+.Sp
+.Vb 1
+\& $ + < = > ^ \` | ~
+.Ve
+.Sp
+These are problematic. The C standard says that these should be
+considered punctuation in the C locale (and the POSIX standard defers to
+the C standard), and Unicode is generally considered a superset of
+the C locale. But Unicode has added an extra category, "Symbol", and
+classifies these particular characters as being symbols. Most UTF\-8
+locales have them treated as punctuation, so that \fBispunct\fR\|(3) returns
+non-zero for them. But a few locales have it return 0. Perl takes
+the first approach, not using \f(CWispunct()\fR at all (see Note [5] in
+perlrecharclass), and this message is raised to notify you that you
+are getting Perl's approach, not the locale's.
+.IP "Locale '%s' is unsupported, and may crash the interpreter." 4
+.IX Item "Locale '%s' is unsupported, and may crash the interpreter."
+(S locale) The named locale is not supported by Perl, and using it leads
+to undefined behavior, including potentially crashing the computer.
+.Sp
+Currently the only locales that generate this severe warning are
+non\-UTF\-8 ones which have characters that require more than one byte to
+represent (common in older East Asian language locales). See
+perllocale.
+.IP "Locale '%s' may not work well.%s" 4
+.IX Item "Locale '%s' may not work well.%s"
+(W locale) You are using the named locale, which is a non\-UTF\-8 one, and
+which perl has determined is not fully compatible with what it can
+handle. The second \f(CW%s\fR gives a reason.
+.Sp
+By far the most common reason is that the locale has characters in it
+that are represented by more than one byte. The only such locales that
+Perl can handle are the UTF\-8 locales. Most likely the specified locale
+is a non\-UTF\-8 one for an East Asian language such as Chinese or
+Japanese. If the locale is a superset of ASCII, the ASCII portion of it
+may work in Perl.
+.Sp
+Some essentially obsolete locales that aren't supersets of ASCII, mainly
+those in ISO 646 or other 7\-bit locales, such as ASMO 449, can also have
+problems, depending on what portions of the ASCII character set get
+changed by the locale and are also used by the program.
+The warning message lists the determinable conflicting characters.
+.Sp
+Note that not all incompatibilities are found.
+.Sp
+If this happens to you, there's not much you can do except switch to use a
+different locale or use Encode to translate from the locale into
+UTF\-8; if that's impracticable, you have been warned that some things
+may break.
+.Sp
+This message is output once each time a bad locale is switched into
+within the scope of \f(CW\*(C`use\ locale\*(C'\fR, or on the first possibly-affected
+operation if the \f(CW\*(C`use\ locale\*(C'\fR inherits a bad one. It is not raised
+for any operations from the POSIX module.
+.IP "localtime(%f) failed" 4
+.IX Item "localtime(%f) failed"
+(W overflow) You called \f(CW\*(C`localtime\*(C'\fR with a number that it could not handle:
+too large, too small, or NaN. The returned value is \f(CW\*(C`undef\*(C'\fR.
+.IP "localtime(%f) too large" 4
+.IX Item "localtime(%f) too large"
+(W overflow) You called \f(CW\*(C`localtime\*(C'\fR with a number that was larger
+than it can reliably handle and \f(CW\*(C`localtime\*(C'\fR probably returned the
+wrong date. This warning is also triggered with NaN (the special
+not-a-number value).
+.IP "localtime(%f) too small" 4
+.IX Item "localtime(%f) too small"
+(W overflow) You called \f(CW\*(C`localtime\*(C'\fR with a number that was smaller
+than it can reliably handle and \f(CW\*(C`localtime\*(C'\fR probably returned the
+wrong date.
+.ie n .IP "Lookbehind longer than %d not implemented in regex m/%s/" 4
+.el .IP "Lookbehind longer than \f(CW%d\fR not implemented in regex m/%s/" 4
+.IX Item "Lookbehind longer than %d not implemented in regex m/%s/"
+(F) There is currently a limit on the length of string which lookbehind can
+handle. This restriction may be eased in a future release.
+.ie n .IP "Lost precision when %s %f by 1" 4
+.el .IP "Lost precision when \f(CW%s\fR \f(CW%f\fR by 1" 4
+.IX Item "Lost precision when %s %f by 1"
+(W imprecision) You attempted to increment or decrement a value by one,
+but the result is too large for the underlying floating point
+representation to store accurately. Hence, the target of \f(CW\*(C`++\*(C'\fR or \f(CW\*(C`\-\-\*(C'\fR
+is increased or decreased by quite different value than one, such as
+zero (\fIi.e.\fR the target is unchanged) or two, due to rounding.
+Perl issues this
+warning because it has already switched from integers to floating point
+when values are too large for integers, and now even floating point is
+insufficient. You may wish to switch to using Math::BigInt explicitly.
+.IP "\fBlstat()\fR on filehandle%s" 4
+.IX Item "lstat() on filehandle%s"
+(W io) You tried to do an lstat on a filehandle. What did you mean
+by that? \fBlstat()\fR makes sense only on filenames. (Perl did a \fBfstat()\fR
+instead on the filehandle.)
+.ie n .IP "lvalue attribute %s already-defined subroutine" 4
+.el .IP "lvalue attribute \f(CW%s\fR already-defined subroutine" 4
+.IX Item "lvalue attribute %s already-defined subroutine"
+(W misc) Although attributes.pm allows this, turning the lvalue
+attribute on or off on a Perl subroutine that is already defined
+does not always work properly. It may or may not do what you
+want, depending on what code is inside the subroutine, with exact
+details subject to change between Perl versions. Only do this
+if you really know what you are doing.
+.IP "lvalue attribute ignored after the subroutine has been defined" 4
+.IX Item "lvalue attribute ignored after the subroutine has been defined"
+(W misc) Using the \f(CW\*(C`:lvalue\*(C'\fR declarative syntax to make a Perl
+subroutine an lvalue subroutine after it has been defined is
+not permitted. To make the subroutine an lvalue subroutine,
+add the lvalue attribute to the definition, or put the \f(CW\*(C`sub
+foo :lvalue;\*(C'\fR declaration before the definition.
+.Sp
+See also attributes.pm.
+.IP "Magical list constants are not supported" 4
+.IX Item "Magical list constants are not supported"
+(F) You assigned a magical array to a stash element, and then tried
+to use the subroutine from the same slot. You are asking Perl to do
+something it cannot do, details subject to change between Perl versions.
+.IP "Malformed integer in [] in pack" 4
+.IX Item "Malformed integer in [] in pack"
+(F) Between the brackets enclosing a numeric repeat count only digits
+are permitted. See "pack" in perlfunc.
+.IP "Malformed integer in [] in unpack" 4
+.IX Item "Malformed integer in [] in unpack"
+(F) Between the brackets enclosing a numeric repeat count only digits
+are permitted. See "pack" in perlfunc.
+.IP "Malformed PERLLIB_PREFIX" 4
+.IX Item "Malformed PERLLIB_PREFIX"
+(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
+.Sp
+.Vb 1
+\& prefix1;prefix2
+.Ve
+.Sp
+or
+ prefix1 prefix2
+.Sp
+with nonempty prefix1 and prefix2. If \f(CW\*(C`prefix1\*(C'\fR is indeed a prefix of
+a builtin library search path, prefix2 is substituted. The error may
+appear if components are not found, or are too long. See
+"PERLLIB_PREFIX" in perlos2.
+.ie n .IP "Malformed prototype for %s: %s" 4
+.el .IP "Malformed prototype for \f(CW%s:\fR \f(CW%s\fR" 4
+.IX Item "Malformed prototype for %s: %s"
+(F) You tried to use a function with a malformed prototype. The
+syntax of function prototypes is given a brief compile-time check for
+obvious errors like invalid characters. A more rigorous check is run
+when the function is called.
+Perhaps the function's author was trying to write a subroutine signature
+but didn't enable that feature first (\f(CW\*(C`use feature \*(Aqsignatures\*(Aq\*(C'\fR),
+so the signature was instead interpreted as a bad prototype.
+.IP "Malformed UTF\-8 character%s" 4
+.IX Item "Malformed UTF-8 character%s"
+(S utf8)(F) Perl detected a string that should be UTF\-8, but didn't
+comply with UTF\-8 encoding rules, or represents a code point whose
+ordinal integer value doesn't fit into the word size of the current
+platform (overflows). Details as to the exact malformation are given in
+the variable, \f(CW%s\fR, part of the message.
+.Sp
+One possible cause is that you set the UTF8 flag yourself for data that
+you thought to be in UTF\-8 but it wasn't (it was for example legacy 8\-bit
+data). To guard against this, you can use \f(CW\*(C`Encode::decode(\*(AqUTF\-8\*(Aq, ...)\*(C'\fR.
+.Sp
+If you use the \f(CW:encoding(UTF\-8)\fR PerlIO layer for input, invalid byte
+sequences are handled gracefully, but if you use \f(CW\*(C`:utf8\*(C'\fR, the flag is set
+without validating the data, possibly resulting in this error message.
+.Sp
+See also "Handling Malformed Data" in Encode.
+.IP "Malformed UTF\-8 returned by \eN{%s} immediately after '%s'" 4
+.IX Item "Malformed UTF-8 returned by N{%s} immediately after '%s'"
+(F) The charnames handler returned malformed UTF\-8.
+.IP "Malformed UTF\-8 string in ""%s""" 4
+.IX Item "Malformed UTF-8 string in ""%s"""
+(F) This message indicates a bug either in the Perl core or in XS
+code. Such code was trying to find out if a character, allegedly
+stored internally encoded as UTF\-8, was of a given type, such as
+being punctuation or a digit. But the character was not encoded
+in legal UTF\-8. The \f(CW%s\fR is replaced by a string that can be used
+by knowledgeable people to determine what the type being checked
+against was.
+.Sp
+Passing malformed strings was deprecated in Perl 5.18, and
+became fatal in Perl 5.26.
+.IP "Malformed UTF\-8 string in '%c' format in unpack" 4
+.IX Item "Malformed UTF-8 string in '%c' format in unpack"
+(F) You tried to unpack something that didn't comply with UTF\-8 encoding
+rules and perl was unable to guess how to make more progress.
+.IP "Malformed UTF\-8 string in pack" 4
+.IX Item "Malformed UTF-8 string in pack"
+(F) You tried to pack something that didn't comply with UTF\-8 encoding
+rules and perl was unable to guess how to make more progress.
+.IP "Malformed UTF\-8 string in unpack" 4
+.IX Item "Malformed UTF-8 string in unpack"
+(F) You tried to unpack something that didn't comply with UTF\-8 encoding
+rules and perl was unable to guess how to make more progress.
+.IP "Malformed UTF\-16 surrogate" 4
+.IX Item "Malformed UTF-16 surrogate"
+(F) Perl thought it was reading UTF\-16 encoded character data but while
+doing it Perl met a malformed Unicode surrogate.
+.IP "Mandatory parameter follows optional parameter" 4
+.IX Item "Mandatory parameter follows optional parameter"
+(F) In a subroutine signature, you wrote something like "$a = undef,
+\&\f(CW$b\fR", making an earlier parameter optional and a later one mandatory.
+Parameters are filled from left to right, so it's impossible for the
+caller to omit an earlier one and pass a later one. If you want to act
+as if the parameters are filled from right to left, declare the rightmost
+optional and then shuffle the parameters around in the subroutine's body.
+.IP "Matched non-Unicode code point 0x%X against Unicode property; may not be portable" 4
+.IX Item "Matched non-Unicode code point 0x%X against Unicode property; may not be portable"
+(S non_unicode) Perl allows strings to contain a superset of
+Unicode code points; each code point may be as large as what is storable
+in a signed integer on your system, but these may not be accepted by
+other languages/systems. This message occurs when you matched a string
+containing such a code point against a regular expression pattern, and
+the code point was matched against a Unicode property, \f(CW\*(C`\ep{...}\*(C'\fR or
+\&\f(CW\*(C`\eP{...}\*(C'\fR. Unicode properties are only defined on Unicode code points,
+so the result of this match is undefined by Unicode, but Perl (starting
+in v5.20) treats non-Unicode code points as if they were typical
+unassigned Unicode ones, and matched this one accordingly. Whether a
+given property matches these code points or not is specified in
+"Properties accessible through \ep{} and \eP{}" in perluniprops.
+.Sp
+This message is suppressed (unless it has been made fatal) if it is
+immaterial to the results of the match if the code point is Unicode or
+not. For example, the property \f(CW\*(C`\ep{ASCII_Hex_Digit}\*(C'\fR only can match
+the 22 characters \f(CW\*(C`[0\-9A\-Fa\-f]\*(C'\fR, so obviously all other code points,
+Unicode or not, won't match it. (And \f(CW\*(C`\eP{ASCII_Hex_Digit}\*(C'\fR will match
+every code point except these 22.)
+.Sp
+Getting this message indicates that the outcome of the match arguably
+should have been the opposite of what actually happened. If you think
+that is the case, you may wish to make the \f(CW\*(C`non_unicode\*(C'\fR warnings
+category fatal; if you agree with Perl's decision, you may wish to turn
+off this category.
+.Sp
+See "Beyond Unicode code points" in perlunicode for more information.
+.ie n .IP "%s matches null string many times in regex; marked by <\-\-\ HERE in m/%s/" 4
+.el .IP "\f(CW%s\fR matches null string many times in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "%s matches null string many times in regex; marked by <--\ HERE in m/%s/"
+(W regexp) The pattern you've specified would be an infinite loop if the
+regular expression engine didn't specifically check for that. The <\-\-\ HERE
+shows whereabouts in the regular expression the problem was discovered.
+See perlre.
+.IP "Maximal count of pending signals (%u) exceeded" 4
+.IX Item "Maximal count of pending signals (%u) exceeded"
+(F) Perl aborted due to too high a number of signals pending. This
+usually indicates that your operating system tried to deliver signals
+too fast (with a very high priority), starving the perl process from
+resources it would need to reach a point where it can process signals
+safely. (See "Deferred Signals (Safe Signals)" in perlipc.)
+.IP """%s"" may clash with future reserved word" 4
+.IX Item """%s"" may clash with future reserved word"
+(W) This warning may be due to running a perl5 script through a perl4
+interpreter, especially if the word that is being warned about is
+"use" or "my".
+.IP "'%' may not be used in pack" 4
+.IX Item "'%' may not be used in pack"
+(F) You can't pack a string by supplying a checksum, because the
+checksumming process loses information, and you can't go the other way.
+See "unpack" in perlfunc.
+.ie n .IP "Method for operation %s not found in package %s during blessing" 4
+.el .IP "Method for operation \f(CW%s\fR not found in package \f(CW%s\fR during blessing" 4
+.IX 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 resolve to a valid subroutine. See overload.
+.IP "method is experimental" 4
+.IX Item "method is experimental"
+(S experimental::class) This warning is emitted if you use the \f(CW\*(C`method\*(C'\fR
+keyword of \f(CW\*(C`use feature \*(Aqclass\*(Aq\*(C'\fR. This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+.ie n .IP "Method %s not permitted" 4
+.el .IP "Method \f(CW%s\fR not permitted" 4
+.IX Item "Method %s not permitted"
+See "500 Server error".
+.ie n .IP "Method %s redefined" 4
+.el .IP "Method \f(CW%s\fR redefined" 4
+.IX Item "Method %s redefined"
+(W redefine) You redefined a method. To suppress this warning, say
+.Sp
+.Vb 4
+\& {
+\& no warnings \*(Aqredefine\*(Aq;
+\& *name = method { ... };
+\& }
+.Ve
+.ie n .IP "Might be a runaway multi-line %s string starting on line %d" 4
+.el .IP "Might be a runaway multi-line \f(CW%s\fR string starting on line \f(CW%d\fR" 4
+.IX Item "Might be a runaway multi-line %s string starting on line %d"
+(S) An advisory indicating that the previous error may have been caused
+by a missing delimiter on a string or pattern, because it eventually
+ended earlier on the current line.
+.IP "Mismatched brackets in template" 4
+.IX Item "Mismatched brackets in template"
+(F) A pack template could not be parsed because pairs of \f(CW\*(C`[...]\*(C'\fR or
+\&\f(CW\*(C`(...)\*(C'\fR could not be matched up. See "pack" in perlfunc.
+.IP "Misplaced _ in number" 4
+.IX Item "Misplaced _ in number"
+(W syntax) An underscore (underbar) in a numeric constant did not
+separate two digits.
+.ie n .IP "Missing argument for %n in %s" 4
+.el .IP "Missing argument for \f(CW%n\fR in \f(CW%s\fR" 4
+.IX Item "Missing argument for %n in %s"
+(F) A \f(CW%n\fR was used in a format string with no corresponding argument for
+perl to write the current string length to.
+.ie n .IP "Missing argument in %s" 4
+.el .IP "Missing argument in \f(CW%s\fR" 4
+.IX Item "Missing argument in %s"
+(W missing) You called a function with fewer arguments than other
+arguments you supplied indicated would be needed.
+.Sp
+Currently only emitted when a printf-type format required more
+arguments than were supplied, but might be used in the future for
+other cases where we can statically determine that arguments to
+functions are missing, e.g. for the "pack" in perlfunc function.
+.IP "Missing argument to \-%c" 4
+.IX Item "Missing argument to -%c"
+(F) The argument to the indicated command line switch must follow
+immediately after the switch, without intervening spaces.
+.IP "Missing braces on \eN{}" 4
+.IX Item "Missing braces on N{}"
+.PD 0
+.IP "Missing braces on \eN{} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Missing braces on N{} in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) Wrong syntax of character name literal \f(CW\*(C`\eN{charname}\*(C'\fR within
+double-quotish context. This can also happen when there is a space
+(or comment) between the \f(CW\*(C`\eN\*(C'\fR and the \f(CW\*(C`{\*(C'\fR in a regex with the \f(CW\*(C`/x\*(C'\fR modifier.
+This modifier does not change the requirement that the brace immediately
+follow the \f(CW\*(C`\eN\*(C'\fR.
+.IP "Missing braces on \eo{}" 4
+.IX Item "Missing braces on o{}"
+(F) A \f(CW\*(C`\eo\*(C'\fR must be followed immediately by a \f(CW\*(C`{\*(C'\fR in double-quotish context.
+.ie n .IP "Missing comma after first argument to %s function" 4
+.el .IP "Missing comma after first argument to \f(CW%s\fR function" 4
+.IX Item "Missing comma after first argument to %s function"
+(F) While certain functions allow you to specify a filehandle or an
+"indirect object" before the argument list, this ain't one of them.
+.IP "Missing command in piped open" 4
+.IX Item "Missing command in piped open"
+(W pipe) You used the \f(CW\*(C`open(FH, "| command")\*(C'\fR or
+\&\f(CW\*(C`open(FH, "command |")\*(C'\fR construction, but the command was missing or
+blank.
+.IP "Missing control char name in \ec" 4
+.IX Item "Missing control char name in c"
+(F) A double-quoted string ended with "\ec", without the required control
+character name.
+.ie n .IP "Missing ']' in prototype for %s : %s" 4
+.el .IP "Missing ']' in prototype for \f(CW%s\fR : \f(CW%s\fR" 4
+.IX Item "Missing ']' in prototype for %s : %s"
+(W illegalproto) A grouping was started with \f(CW\*(C`[\*(C'\fR but never closed with \f(CW\*(C`]\*(C'\fR.
+.IP "Missing name in ""%s sub""" 4
+.IX Item "Missing name in ""%s sub"""
+(F) The syntax for lexically scoped subroutines requires that
+they have a name with which they can be found.
+.IP "Missing $ on loop variable" 4
+.IX Item "Missing $ on loop variable"
+(F) Apparently you've been programming in \fBcsh\fR too much. Variables
+are always mentioned with the $ in Perl, unlike in the shells, where it
+can vary from one line to the next.
+.ie n .IP "(Missing operator before %s?)" 4
+.el .IP "(Missing operator before \f(CW%s\fR?)" 4
+.IX Item "(Missing operator before %s?)"
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". Often the missing operator is a comma.
+.ie n .IP "Missing or undefined argument to %s" 4
+.el .IP "Missing or undefined argument to \f(CW%s\fR" 4
+.IX Item "Missing or undefined argument to %s"
+(F) You tried to call \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR with no argument or with an
+undefined value as an argument. Require expects either a package name or
+a file-specification as an argument; do expects a filename. See
+"require EXPR" in perlfunc and "do EXPR" in perlfunc.
+.ie n .IP "Missing or undefined argument to %s via %{^HOOK}{require_\|_before}" 4
+.el .IP "Missing or undefined argument to \f(CW%s\fR via %{^HOOK}{require_\|_before}" 4
+.IX Item "Missing or undefined argument to %s via %{^HOOK}{require__before}"
+(F) A \f(CW\*(C`%{^HOOK}{require_\|_before}\*(C'\fR hook rewrote the name of the file being
+compiled with \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR with an empty string an undefined value
+which is forbidden. See "%{^HOOK}" in perlvar and "require EXPR" in perlfunc.
+.IP "Missing right brace on \e%c{} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Missing right brace on %c{} in regex; marked by <--\ HERE in m/%s/"
+(F) Missing right brace in \f(CW\*(C`\ex{...}\*(C'\fR, \f(CW\*(C`\ep{...}\*(C'\fR, \f(CW\*(C`\eP{...}\*(C'\fR, or \f(CW\*(C`\eN{...}\*(C'\fR.
+.IP "Missing right brace on \eN{}" 4
+.IX Item "Missing right brace on N{}"
+.PD 0
+.IP "Missing right brace on \eN{} or unescaped left brace after \eN" 4
+.IX Item "Missing right brace on N{} or unescaped left brace after N"
+.PD
+(F) \f(CW\*(C`\eN\*(C'\fR has two meanings.
+.Sp
+The traditional one has it followed by a name enclosed in braces,
+meaning the character (or sequence of characters) given by that
+name. Thus \f(CW\*(C`\eN{ASTERISK}\*(C'\fR is another way of writing \f(CW\*(C`*\*(C'\fR, valid in both
+double-quoted strings and regular expression patterns. In patterns,
+it doesn't have the meaning an unescaped \f(CW\*(C`*\*(C'\fR does.
+.Sp
+Starting in Perl 5.12.0, \f(CW\*(C`\eN\*(C'\fR also can have an additional meaning (only)
+in patterns, namely to match a non-newline character. (This is short
+for \f(CW\*(C`[^\en]\*(C'\fR, and like \f(CW\*(C`.\*(C'\fR but is not affected by the \f(CW\*(C`/s\*(C'\fR regex modifier.)
+.Sp
+This can lead to some ambiguities. When \f(CW\*(C`\eN\*(C'\fR is not followed immediately
+by a left brace, Perl assumes the \f(CW\*(C`[^\en]\*(C'\fR meaning. Also, if the braces
+form a valid quantifier such as \f(CW\*(C`\eN{3}\*(C'\fR or \f(CW\*(C`\eN{5,}\*(C'\fR, Perl assumes that this
+means to match the given quantity of non-newlines (in these examples,
+3; and 5 or more, respectively). In all other case, where there is a
+\&\f(CW\*(C`\eN{\*(C'\fR and a matching \f(CW\*(C`}\*(C'\fR, Perl assumes that a character name is desired.
+.Sp
+However, if there is no matching \f(CW\*(C`}\*(C'\fR, Perl doesn't know if it was
+mistakenly omitted, or if \f(CW\*(C`[^\en]{\*(C'\fR was desired, and raises this error.
+If you meant the former, add the right brace; if you meant the latter,
+escape the brace with a backslash, like so: \f(CW\*(C`\eN\e{\*(C'\fR
+.IP "Missing right curly or square bracket" 4
+.IX Item "Missing right curly or square bracket"
+(F) The lexer counted more opening curly or square brackets than closing
+ones. As a general rule, you'll find it's missing near the place you
+were last editing.
+.IP "(Missing semicolon on previous line?)" 4
+.IX Item "(Missing semicolon on previous line?)"
+(S syntax) This is an educated guess made in conjunction with the message
+"%s found where operator expected". Don't automatically put a semicolon on
+the previous line just because you saw this message.
+.IP "Modification of a read-only value attempted" 4
+.IX Item "Modification of a read-only value attempted"
+(F) You tried, directly or indirectly, to change the value of a
+constant. You didn't, of course, try "2 = 1", because the compiler
+catches that. But an easy way to do the same thing is:
+.Sp
+.Vb 2
+\& sub mod { $_[0] = 1 }
+\& mod(2);
+.Ve
+.Sp
+Another way is to assign to a \fBsubstr()\fR that's off the end of the string.
+.Sp
+Yet another way is to assign to a \f(CW\*(C`foreach\*(C'\fR loop \fIVAR\fR when \fIVAR\fR
+is aliased to a constant in the look \fILIST\fR:
+.Sp
+.Vb 4
+\& $x = 1;
+\& foreach my $n ($x, 2) {
+\& $n *= 2; # modifies the $x, but fails on attempt to
+\& } # modify the 2
+.Ve
+.Sp
+PerlIO::scalar will also produce this message as a warning if you
+attempt to open a read-only scalar for writing.
+.ie n .IP "Modification of non-creatable array value attempted, %s" 4
+.el .IP "Modification of non-creatable array value attempted, \f(CW%s\fR" 4
+.IX Item "Modification of non-creatable array value attempted, %s"
+(F) You tried to make an array value spring into existence, and the
+subscript was probably negative, even counting from end of the array
+backwards.
+.ie n .IP "Modification of non-creatable hash value attempted, %s" 4
+.el .IP "Modification of non-creatable hash value attempted, \f(CW%s\fR" 4
+.IX Item "Modification of non-creatable hash value attempted, %s"
+(P) You tried to make a hash value spring into existence, and it
+couldn't be created for some peculiar reason.
+.IP "Module name must be constant" 4
+.IX Item "Module name must be constant"
+(F) Only a bare module name is allowed as the first argument to a "use".
+.IP "Module name required with \-%c option" 4
+.IX Item "Module name required with -%c option"
+(F) The \f(CW\*(C`\-M\*(C'\fR or \f(CW\*(C`\-m\*(C'\fR options say that Perl should load some module, but
+you omitted the name of the module. Consult
+perlrun for full details about \f(CW\*(C`\-M\*(C'\fR and \f(CW\*(C`\-m\*(C'\fR.
+.IP "More than one argument to '%s' open" 4
+.IX Item "More than one argument to '%s' open"
+(F) The \f(CW\*(C`open\*(C'\fR function has been asked to open multiple files. This
+can happen if you are trying to open a pipe to a command that takes a
+list of arguments, but have forgotten to specify a piped open mode.
+See "open" in perlfunc for details.
+.ie n .IP "mprotect for COW string %p %u failed with %d" 4
+.el .IP "mprotect for COW string \f(CW%p\fR \f(CW%u\fR failed with \f(CW%d\fR" 4
+.IX Item "mprotect for COW string %p %u failed with %d"
+(S) You compiled perl with \fB\-D\fRPERL_DEBUG_READONLY_COW (see
+"Copy on Write" in perlguts), but a shared string buffer
+could not be made read-only.
+.ie n .IP "mprotect for %p %u failed with %d" 4
+.el .IP "mprotect for \f(CW%p\fR \f(CW%u\fR failed with \f(CW%d\fR" 4
+.IX Item "mprotect for %p %u failed with %d"
+(S) You compiled perl with \fB\-D\fRPERL_DEBUG_READONLY_OPS (see perlhacktips),
+but an op tree could not be made read-only.
+.ie n .IP "mprotect RW for COW string %p %u failed with %d" 4
+.el .IP "mprotect RW for COW string \f(CW%p\fR \f(CW%u\fR failed with \f(CW%d\fR" 4
+.IX Item "mprotect RW for COW string %p %u failed with %d"
+(S) You compiled perl with \fB\-D\fRPERL_DEBUG_READONLY_COW (see
+"Copy on Write" in perlguts), but a read-only shared string
+buffer could not be made mutable.
+.ie n .IP "mprotect RW for %p %u failed with %d" 4
+.el .IP "mprotect RW for \f(CW%p\fR \f(CW%u\fR failed with \f(CW%d\fR" 4
+.IX Item "mprotect RW for %p %u failed with %d"
+(S) You compiled perl with \fB\-D\fRPERL_DEBUG_READONLY_OPS (see
+perlhacktips), but a read-only op tree could not be made
+mutable before freeing the ops.
+.IP "msg%s not implemented" 4
+.IX Item "msg%s not implemented"
+(F) You don't have System V message IPC on your system.
+.IP "Multidimensional hash lookup is disabled" 4
+.IX Item "Multidimensional hash lookup is disabled"
+(F) You supplied a list of subscripts to a hash lookup under
+\&\f(CW\*(C`no feature "multidimensional";\*(C'\fR, eg:
+.Sp
+.Vb 1
+\& $z = $foo{$x, $y};
+.Ve
+.Sp
+which by default acts like:
+.Sp
+.Vb 1
+\& $z = $foo{join($;, $x, $y)};
+.Ve
+.ie n .IP "Multidimensional syntax %s not supported" 4
+.el .IP "Multidimensional syntax \f(CW%s\fR not supported" 4
+.IX Item "Multidimensional syntax %s not supported"
+(W syntax) Multidimensional arrays aren't written like \f(CW$foo[1,2,3]\fR.
+They're written like \f(CW\*(C`$foo[1][2][3]\*(C'\fR, as in C.
+.IP "Multiple slurpy parameters not allowed" 4
+.IX Item "Multiple slurpy parameters not allowed"
+(F) In subroutine signatures, a slurpy parameter (\f(CW\*(C`@\*(C'\fR or \f(CW\*(C`%\*(C'\fR) must be
+the last parameter, and there must not be more than one of them; for
+example:
+.Sp
+.Vb 2
+\& sub foo ($a, @b) {} # legal
+\& sub foo ($a, @b, %) {} # invalid
+.Ve
+.IP "'/' must follow a numeric type in unpack" 4
+.IX Item "'/' must follow a numeric type in unpack"
+(F) You had an unpack template that contained a '/', but this did not
+follow some unpack specification producing a numeric value.
+See "pack" in perlfunc.
+.ie n .IP "%s must not be a named sequence in transliteration operator" 4
+.el .IP "\f(CW%s\fR must not be a named sequence in transliteration operator" 4
+.IX Item "%s must not be a named sequence in transliteration operator"
+(F) Transliteration (\f(CW\*(C`tr///\*(C'\fR and \f(CW\*(C`y///\*(C'\fR) transliterates individual
+characters. But a named sequence by definition is more than an
+individual character, and hence doing this operation on it doesn't make
+sense.
+.IP """my sub"" not yet implemented" 4
+.IX Item """my sub"" not yet implemented"
+(F) Lexically scoped subroutines are not yet implemented. Don't try
+that yet.
+.ie n .IP """my"" subroutine %s can't be in a package" 4
+.el .IP """my"" subroutine \f(CW%s\fR can't be in a package" 4
+.IX Item """my"" subroutine %s can't be in a package"
+(F) Lexically scoped subroutines aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front.
+.ie n .IP """my %s"" used in sort comparison" 4
+.el .IP """my \f(CW%s\fR"" used in sort comparison" 4
+.IX Item """my %s"" used in sort comparison"
+(W syntax) The package variables \f(CW$a\fR and \f(CW$b\fR are used for sort comparisons.
+You used \f(CW$a\fR or \f(CW$b\fR in as an operand to the \f(CW\*(C`<=>\*(C'\fR or \f(CW\*(C`cmp\*(C'\fR operator inside a
+sort comparison block, 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.
+.ie n .IP """my"" variable %s can't be in a package" 4
+.el .IP """my"" variable \f(CW%s\fR can't be in a package" 4
+.IX Item """my"" variable %s can't be in a package"
+(F) Lexically scoped variables aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front. Use
+\&\fBlocal()\fR if you want to localize a package variable.
+.IP "Name ""%s::%s"" used only once: possible typo" 4
+.IX Item "Name ""%s::%s"" used only once: possible typo"
+(W once) 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 \f(CW\*(C`our\*(C'\fR
+declaration is also provided for this purpose.
+.Sp
+NOTE: This warning detects package symbols that have been used
+only once. This means lexical variables will never trigger this
+warning. It also means that all of the package variables \f(CW$c\fR, \f(CW@c\fR,
+\&\f(CW%c\fR, as well as *c, &c, sub c{}, c(), and c (the filehandle or
+format) are considered the same; if a program uses \f(CW$c\fR only once
+but also uses any of the others it will not trigger this warning.
+Symbols beginning with an underscore and symbols using special
+identifiers (q.v. perldata) are exempt from this warning.
+.IP "Need exactly 3 octal digits in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Need exactly 3 octal digits in regex; marked by <--\ HERE in m/%s/"
+(F) Within \f(CW\*(C`(?[\ \ \ ])\*(C'\fR, all constants interpreted as octal need to be
+exactly 3 digits long. This helps catch some ambiguities. If your
+constant is too short, add leading zeros, like
+.Sp
+.Vb 3
+\& (?[ [ \e078 ] ]) # Syntax error!
+\& (?[ [ \e0078 ] ]) # Works
+\& (?[ [ \e007 8 ] ]) # Clearer
+.Ve
+.Sp
+The maximum number this construct can express is \f(CW\*(C`\e777\*(C'\fR. If you
+need a larger one, you need to use \eo{} instead. If you meant
+two separate things, you need to separate them:
+.Sp
+.Vb 4
+\& (?[ [ \e7776 ] ]) # Syntax error!
+\& (?[ [ \eo{7776} ] ]) # One meaning
+\& (?[ [ \e777 6 ] ]) # Another meaning
+\& (?[ [ \e777 \e006 ] ]) # Still another
+.Ve
+.IP "Negative '/' count in unpack" 4
+.IX Item "Negative '/' count in unpack"
+(F) The length count obtained from a length/code unpack operation was
+negative. See "pack" in perlfunc.
+.IP "Negative length" 4
+.IX Item "Negative length"
+(F) You tried to do a read/write/send/recv operation with a buffer
+length that is less than 0. This is difficult to imagine.
+.IP "Negative offset to vec in lvalue context" 4
+.IX Item "Negative offset to vec in lvalue context"
+(F) When \f(CW\*(C`vec\*(C'\fR is called in an lvalue context, the second argument must be
+greater than or equal to zero.
+.IP "Negative repeat count does nothing" 4
+.IX Item "Negative repeat count does nothing"
+(W numeric) You tried to execute the
+\&\f(CW\*(C`x\*(C'\fR repetition operator fewer than 0
+times, which doesn't make sense.
+.IP "Nested quantifiers in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Nested quantifiers in regex; marked by <--\ HERE in m/%s/"
+(F) You can't quantify a quantifier without intervening parentheses.
+So things like ** or +* or ?* are illegal. The <\-\-\ HERE shows
+whereabouts in the regular expression the problem was discovered.
+.Sp
+Note that the minimal matching quantifiers, \f(CW\*(C`*?\*(C'\fR, \f(CW\*(C`+?\*(C'\fR, and
+\&\f(CW\*(C`??\*(C'\fR appear to be nested quantifiers, but aren't. See perlre.
+.ie n .IP "%s never introduced" 4
+.el .IP "\f(CW%s\fR never introduced" 4
+.IX Item "%s never introduced"
+(S internal) The symbol in question was declared but somehow went out of
+scope before it could possibly have been used.
+.IP "next::method/next::can/maybe::next::method cannot find enclosing method" 4
+.IX Item "next::method/next::can/maybe::next::method cannot find enclosing method"
+(F) \f(CW\*(C`next::method\*(C'\fR needs to be called within the context of a
+real method in a real package, and it could not find such a context.
+See mro.
+.IP "\eN in a character class must be a named character: \eN{...} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "N in a character class must be a named character: N{...} in regex; marked by <--\ HERE in m/%s/"
+(F) The new (as of Perl 5.12) meaning of \f(CW\*(C`\eN\*(C'\fR as \f(CW\*(C`[^\en]\*(C'\fR is not valid in a
+bracketed character class, for the same reason that \f(CW\*(C`.\*(C'\fR in a character
+class loses its specialness: it matches almost everything, which is
+probably not what you want.
+.IP "\eN{} here is restricted to one character in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "N{} here is restricted to one character in regex; marked by <-- HERE in m/%s/"
+(F) Named Unicode character escapes (\f(CW\*(C`\eN{...}\*(C'\fR) may return a
+multi-character sequence. Even though a character class is
+supposed to match just one character of input, perl will match the
+whole thing correctly, except under certain conditions. These currently
+are
+.RS 4
+.ie n .IP "When the class is inverted (""[^...]"")" 4
+.el .IP "When the class is inverted (\f(CW[^...]\fR)" 4
+.IX Item "When the class is inverted ([^...])"
+The mathematically logical behavior for what matches when inverting
+is very different from what people expect, so we have decided to
+forbid it.
+.IP "The escape is the beginning or final end point of a range" 4
+.IX Item "The escape is the beginning or final end point of a range"
+Similarly unclear is what should be generated when the
+\&\f(CW\*(C`\eN{...}\*(C'\fR is used as one of the end points of the range, such as in
+.Sp
+.Vb 1
+\& [\ex{41}\-\eN{ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE}]
+.Ve
+.Sp
+What is meant here is unclear, as the \f(CW\*(C`\eN{...}\*(C'\fR escape is a sequence
+of code points, so this is made an error.
+.IP "In a regex set" 4
+.IX Item "In a regex set"
+The syntax \f(CW\*(C`(?[\ \ \ ])\*(C'\fR in a regular expression yields a list of
+single code points, none can be a sequence.
+.RE
+.RS 4
+.RE
+.ie n .IP "No %s allowed while running setuid" 4
+.el .IP "No \f(CW%s\fR allowed while running setuid" 4
+.IX Item "No %s allowed while running setuid"
+(F) Certain operations are deemed to be too insecure for a setuid or
+setgid script to even be allowed to attempt. Generally speaking there
+will be another way to do what you want that is, if not secure, at least
+securable. See perlsec.
+.IP "No code specified for \-%c" 4
+.IX Item "No code specified for -%c"
+(F) Perl's \fB\-e\fR and \fB\-E\fR command-line options require an argument. If
+you want to run an empty program, pass the empty string as a separate
+argument or run a program consisting of a single 0 or 1:
+.Sp
+.Vb 3
+\& perl \-e ""
+\& perl \-e0
+\& perl \-e1
+.Ve
+.ie n .IP "No comma allowed after %s" 4
+.el .IP "No comma allowed after \f(CW%s\fR" 4
+.IX Item "No comma allowed after %s"
+(F) A list operator that has a filehandle or "indirect object" is
+not allowed to have a comma between that and the following arguments.
+Otherwise it'd be just another one of the arguments.
+.Sp
+One possible cause for this is that you expected to have imported
+a constant to your name space with \fBuse\fR or \fBimport\fR while no such
+importing took place, it may for example be that your operating
+system does not support that particular constant. Hopefully you did
+use an explicit import list for the constants you expect to see;
+please see "use" in perlfunc and "import" in perlfunc. While an
+explicit import list would probably have caught this error earlier
+it naturally does not remedy the fact that your operating system
+still does not support that constant. Maybe you have a typo in
+the constants of the symbol import list of \fBuse\fR or \fBimport\fR or in the
+constant name at the line where this error was triggered?
+.IP "No command into which to pipe on command line" 4
+.IX Item "No command into which to pipe on command line"
+(F) An error peculiar to VMS. Perl handles its own command line
+redirection, and found a '|' at the end of the command line, so it
+doesn't know where you want to pipe the output from this command.
+.IP "No DB::DB routine defined" 4
+.IX Item "No DB::DB routine defined"
+(F) The currently executing code was compiled with the \fB\-d\fR switch, but
+for some reason the current debugger (e.g. \fIperl5db.pl\fR or a \f(CW\*(C`Devel::\*(C'\fR
+module) didn't define a routine to be called at the beginning of each
+statement.
+.IP "No dbm on this machine" 4
+.IX Item "No dbm on this machine"
+(P) This is counted as an internal error, because every machine should
+supply dbm nowadays, because Perl comes with SDBM. See SDBM_File.
+.IP "No DB::sub routine defined" 4
+.IX Item "No DB::sub routine defined"
+(F) The currently executing code was compiled with the \fB\-d\fR switch, but
+for some reason the current debugger (e.g. \fIperl5db.pl\fR or a \f(CW\*(C`Devel::\*(C'\fR
+module) didn't define a \f(CW\*(C`DB::sub\*(C'\fR routine to be called at the beginning
+of each ordinary subroutine call.
+.ie n .IP "No digits found for %s literal" 4
+.el .IP "No digits found for \f(CW%s\fR literal" 4
+.IX Item "No digits found for %s literal"
+(F) No hexadecimal digits were found following \f(CW\*(C`0x\*(C'\fR or no binary digits
+were found following \f(CW\*(C`0b\*(C'\fR.
+.IP "No directory specified for \-I" 4
+.IX Item "No directory specified for -I"
+(F) The \fB\-I\fR command-line switch requires a directory name as part of the
+\&\fIsame\fR argument. Use \fB\-Ilib\fR, for instance. \fB\-I lib\fR won't work.
+.IP "No error file after 2> or 2>> on command line" 4
+.IX Item "No error file after 2> or 2>> 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.
+.IP "No group ending character '%c' found in template" 4
+.IX Item "No group ending character '%c' found in template"
+(F) A pack or unpack template has an opening '(' or '[' without its
+matching counterpart. See "pack" in perlfunc.
+.IP "No input file after < on command line" 4
+.IX Item "No input file after < 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.
+.ie n .IP "No next::method '%s' found for %s" 4
+.el .IP "No next::method '%s' found for \f(CW%s\fR" 4
+.IX Item "No next::method '%s' found for %s"
+(F) \f(CW\*(C`next::method\*(C'\fR found no further instances of this method name
+in the remaining packages of the MRO of this class. If you don't want
+it throwing an exception, use \f(CW\*(C`maybe::next::method\*(C'\fR
+or \f(CW\*(C`next::can\*(C'\fR. See mro.
+.IP "Non-finite repeat count does nothing" 4
+.IX Item "Non-finite repeat count does nothing"
+(W numeric) You tried to execute the
+\&\f(CW\*(C`x\*(C'\fR repetition operator \f(CW\*(C`Inf\*(C'\fR (or
+\&\f(CW\*(C`\-Inf\*(C'\fR) or \f(CW\*(C`NaN\*(C'\fR times, which doesn't make sense.
+.IP "Non-hex character in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Non-hex character in regex; marked by <--\ HERE in m/%s/"
+(F) In a regular expression, there was a non-hexadecimal character where
+a hex one was expected, like
+.Sp
+.Vb 2
+\& (?[ [ \exDG ] ])
+\& (?[ [ \ex{DEKA} ] ])
+.Ve
+.IP "Non-hex character '%c' terminates \ex early. Resolved as ""%s""" 4
+.IX Item "Non-hex character '%c' terminates x early. Resolved as ""%s"""
+(W digit) In parsing a hexadecimal numeric constant, a character was
+unexpectedly encountered that isn't hexadecimal. The resulting value
+is as indicated.
+.Sp
+Note that, within braces, every character starting with the first
+non-hexadecimal up to the ending brace is ignored.
+.IP "Non-octal character in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Non-octal character in regex; marked by <--\ HERE in m/%s/"
+(F) In a regular expression, there was a non-octal character where
+an octal one was expected, like
+.Sp
+.Vb 1
+\& (?[ [ \eo{1278} ] ])
+.Ve
+.IP "Non-octal character '%c' terminates \eo early. Resolved as ""%s""" 4
+.IX Item "Non-octal character '%c' terminates o early. Resolved as ""%s"""
+(W digit) In parsing an octal numeric constant, a character was
+unexpectedly encountered that isn't octal. The resulting value
+is as indicated.
+.Sp
+When not using \f(CW\*(C`\eo{...}\*(C'\fR, you wrote something like \f(CW\*(C`\e08\*(C'\fR, or \f(CW\*(C`\e179\*(C'\fR
+in a double-quotish string. The resolution is as indicated, with all
+but the last digit treated as a single character, specified in octal.
+The last digit is the next character in the string. To tell Perl that
+this is indeed what you want, you can use the \f(CW\*(C`\eo{ }\*(C'\fR syntax, or use
+exactly three digits to specify the octal for the character.
+.Sp
+Note that, within braces, every character starting with the first
+non-octal up to the ending brace is ignored.
+.IP """no"" not allowed in expression" 4
+.IX Item """no"" not allowed in expression"
+(F) The "no" keyword is recognized and executed at compile time, and
+returns no useful value. See perlmod.
+.IP "Non-string passed as bitmask" 4
+.IX Item "Non-string passed as bitmask"
+(W misc) A number has been passed as a bitmask argument to \fBselect()\fR.
+Use the \fBvec()\fR function to construct the file descriptor bitmasks for
+select. See "select" in perlfunc.
+.IP "No output file after > on command line" 4
+.IX Item "No output file after > 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 where you wanted to redirect stdout.
+.IP "No output file after > or >> on command line" 4
+.IX Item "No output file after > or >> 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.
+.ie n .IP "No package name allowed for subroutine %s in ""our""" 4
+.el .IP "No package name allowed for subroutine \f(CW%s\fR in ""our""" 4
+.IX Item "No package name allowed for subroutine %s in ""our"""
+.PD 0
+.ie n .IP "No package name allowed for variable %s in ""our""" 4
+.el .IP "No package name allowed for variable \f(CW%s\fR in ""our""" 4
+.IX Item "No package name allowed for variable %s in ""our"""
+.PD
+(F) Fully qualified subroutine and variable names are not allowed in "our"
+declarations, because that doesn't make much sense under existing rules.
+Such syntax is reserved for future extensions.
+.IP "No Perl script found in input" 4
+.IX Item "No Perl script found in input"
+(F) You called \f(CW\*(C`perl \-x\*(C'\fR, but no line was found in the file beginning
+with #! and containing the word "perl".
+.IP "No setregid available" 4
+.IX Item "No setregid available"
+(F) Configure didn't find anything resembling the \fBsetregid()\fR call for
+your system.
+.IP "No setreuid available" 4
+.IX Item "No setreuid available"
+(F) Configure didn't find anything resembling the \fBsetreuid()\fR call for
+your system.
+.ie n .IP "No such class %s" 4
+.el .IP "No such class \f(CW%s\fR" 4
+.IX Item "No such class %s"
+(F) You provided a class qualifier in a "my", "our" or "state"
+declaration, but this class doesn't exist at this point in your program.
+.ie n .IP "No such class field ""%s"" in variable %s of type %s" 4
+.el .IP "No such class field ""%s"" in variable \f(CW%s\fR of type \f(CW%s\fR" 4
+.IX Item "No such class field ""%s"" in variable %s of type %s"
+(F) You tried to access a key from a hash through the indicated typed
+variable but that key is not allowed by the package of the same type.
+The indicated package has restricted the set of allowed keys using the
+fields pragma.
+.ie n .IP "No such hook: %s" 4
+.el .IP "No such hook: \f(CW%s\fR" 4
+.IX Item "No such hook: %s"
+(F) You specified a signal hook that was not recognized by Perl.
+Currently, Perl accepts \f(CW\*(C`_\|_DIE_\|_\*(C'\fR and \f(CW\*(C`_\|_WARN_\|_\*(C'\fR as valid signal hooks.
+.IP "No such pipe open" 4
+.IX Item "No such pipe open"
+(P) An error peculiar to VMS. The internal routine \fBmy_pclose()\fR tried to
+close a pipe which hadn't been opened. This should have been caught
+earlier as an attempt to close an unopened filehandle.
+.IP "No such signal: SIG%s" 4
+.IX Item "No such signal: SIG%s"
+(W signal) You specified a signal name as a subscript to \f(CW%SIG\fR that was
+not recognized. Say \f(CW\*(C`kill \-l\*(C'\fR in your shell to see the valid signal
+names on your system.
+.IP "No Unicode property value wildcard matches:" 4
+.IX Item "No Unicode property value wildcard matches:"
+(W regexp) You specified a wildcard for a Unicode property value, but
+there is no property value in the current Unicode release that matches
+it. Check your spelling.
+.IP "Not a CODE reference" 4
+.IX Item "Not a CODE reference"
+(F) Perl was trying to evaluate a reference to a code value (that is, a
+subroutine), but found a reference to something else instead. You can
+use the \fBref()\fR function to find out what kind of ref it really was. See
+also perlref.
+.IP "Not a GLOB reference" 4
+.IX Item "Not a GLOB reference"
+(F) Perl was trying to evaluate a reference to a "typeglob" (that is, a
+symbol table entry that looks like \f(CW*foo\fR), but found a reference to
+something else instead. You can use the \fBref()\fR function to find out what
+kind of ref it really was. See perlref.
+.IP "Not a HASH reference" 4
+.IX Item "Not a HASH reference"
+(F) Perl was trying to evaluate a reference to a hash value, but found a
+reference to something else instead. You can use the \fBref()\fR function to
+find out what kind of ref it really was. See perlref.
+.IP "'#' not allowed immediately following a sigil in a subroutine signature" 4
+.IX Item "'#' not allowed immediately following a sigil in a subroutine signature"
+(F) In a subroutine signature definition, a comment following a sigil
+(\f(CW\*(C`$\*(C'\fR, \f(CW\*(C`@\*(C'\fR or \f(CW\*(C`%\*(C'\fR), needs to be separated by whitespace or a comma etc., in
+particular to avoid confusion with the \f(CW$#\fR variable. For example:
+.Sp
+.Vb 6
+\& # bad
+\& sub f ($# ignore first arg
+\& , $b) {}
+\& # good
+\& sub f ($, # ignore first arg
+\& $b) {}
+.Ve
+.IP "Not an ARRAY reference" 4
+.IX Item "Not an ARRAY reference"
+(F) Perl was trying to evaluate a reference to an array value, but found
+a reference to something else instead. You can use the \fBref()\fR function
+to find out what kind of ref it really was. See perlref.
+.IP "Not a SCALAR reference" 4
+.IX Item "Not a SCALAR reference"
+(F) Perl was trying to evaluate a reference to a scalar value, but found
+a reference to something else instead. You can use the \fBref()\fR function
+to find out what kind of ref it really was. See perlref.
+.IP "Not a subroutine reference" 4
+.IX Item "Not a subroutine reference"
+(F) Perl was trying to evaluate a reference to a code value (that is, a
+subroutine), but found a reference to something else instead. You can
+use the \fBref()\fR function to find out what kind of ref it really was. See
+also perlref.
+.IP "Not a subroutine reference in overload table" 4
+.IX Item "Not a subroutine reference in overload table"
+(F) An attempt was made to specify an entry in an overloading table that
+doesn't somehow point to a valid subroutine. See overload.
+.ie n .IP "Not enough arguments for %s" 4
+.el .IP "Not enough arguments for \f(CW%s\fR" 4
+.IX Item "Not enough arguments for %s"
+(F) The function requires more arguments than you specified.
+.IP "Not enough format arguments" 4
+.IX Item "Not enough format arguments"
+(W syntax) A format specified more picture fields than the next line
+supplied. See perlform.
+.ie n .IP "%s: not found" 4
+.el .IP "\f(CW%s:\fR not found" 4
+.IX 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 into Perl
+yourself.
+.IP "no UTC offset information; assuming local time is UTC" 4
+.IX Item "no UTC offset information; assuming local time is UTC"
+(S) A warning peculiar to VMS. Perl was unable to find the local
+timezone offset, so it's assuming that local system time is equivalent
+to UTC. If it's not, define the logical name
+\&\fISYS$TIMEZONE_DIFFERENTIAL\fR to translate to the number of seconds which
+need to be added to UTC to get local time.
+.IP "NULL OP IN RUN" 4
+.IX Item "NULL OP IN RUN"
+(S debugging) Some internal routine called \fBrun()\fR with a null opcode
+pointer.
+.IP "Null picture in formline" 4
+.IX Item "Null picture in formline"
+(F) The first argument to formline must be a valid format picture
+specification. It was found to be empty, which probably means you
+supplied it an uninitialized value. See perlform.
+.IP "NULL regexp parameter" 4
+.IX Item "NULL regexp parameter"
+(P) The internal pattern matching routines are out of their gourd.
+.IP "Number too long" 4
+.IX Item "Number too long"
+(F) Perl limits the representation of decimal numbers in programs to
+about 250 characters. You've exceeded that length. Future
+versions of Perl are likely to eliminate this arbitrary limitation. In
+the meantime, try using scientific notation (e.g. "1e6" instead of
+"1_000_000").
+.IP "Number with no digits" 4
+.IX Item "Number with no digits"
+(F) Perl was looking for a number but found nothing that looked like
+a number. This happens, for example with \f(CW\*(C`\eo{}\*(C'\fR, with no number between
+the braces.
+.IP "Numeric format result too large" 4
+.IX Item "Numeric format result too large"
+(F) The length of the result of a numeric format supplied to \fBsprintf()\fR
+or \fBprintf()\fR would have been too large for the underlying C function to
+report. This limit is typically 2GB.
+.IP "Numeric variables with more than one digit may not start with '0'" 4
+.IX Item "Numeric variables with more than one digit may not start with '0'"
+(F) The only numeric variable which is allowed to start with a 0 is \f(CW$0\fR,
+and you mentioned a variable that starts with 0 that has more than one
+digit. You probably want to remove the leading 0, or if the intent was
+to express a variable name in octal you should convert to decimal.
+.IP "Octal number > 037777777777 non-portable" 4
+.IX Item "Octal number > 037777777777 non-portable"
+(W portable) The octal number you specified is larger than 2**32\-1
+(4294967295) and therefore non-portable between systems. See
+perlport for more on portability concerns.
+.IP "Odd name/value argument for subroutine '%s'" 4
+.IX Item "Odd name/value argument for subroutine '%s'"
+(F) A subroutine using a slurpy hash parameter in its signature
+received an odd number of arguments to populate the hash. It requires
+the arguments to be paired, with the same number of keys as values.
+The caller of the subroutine is presumably at fault.
+.Sp
+The message attempts to include the name of the called subroutine. If the
+subroutine has been aliased, the subroutine's original name will be shown,
+regardless of what name the caller used.
+.IP "Odd number of arguments for overload::constant" 4
+.IX Item "Odd number of arguments for overload::constant"
+(W overload) The call to overload::constant contained an odd number of
+arguments. The arguments should come in pairs.
+.IP "Odd number of elements in anonymous hash" 4
+.IX Item "Odd number of elements in anonymous hash"
+(W misc) You specified an odd number of elements to initialize a hash,
+which is odd, because hashes come in key/value pairs.
+.IP "Odd number of elements in export_lexically" 4
+.IX Item "Odd number of elements in export_lexically"
+(F) A call to "export_lexically" in builtin contained an odd number of
+arguments. This is not permitted, because each name must be paired with a
+valid reference value.
+.IP "Odd number of elements in hash assignment" 4
+.IX Item "Odd number of elements in hash assignment"
+(W misc) You specified an odd number of elements to initialize a hash,
+which is odd, because hashes come in key/value pairs.
+.IP "Odd number of elements in hash field initialization" 4
+.IX Item "Odd number of elements in hash field initialization"
+(W misc) You specified an odd number of elements to initialise a hash
+field of an object. Hashes are initialised from a list of key/value
+pairs so there must be a corresponding value to every key. The final
+missing value will be filled in with undef instead.
+.IP "Offset outside string" 4
+.IX Item "Offset outside string"
+(F)(W layer) You tried to do a read/write/send/recv/seek operation
+with an offset pointing outside the buffer. This is difficult to
+imagine. The sole exceptions to this are that zero padding will
+take place when going past the end of the string when either
+\&\f(CWsysread()\fRing a file, or when seeking past the end of a scalar opened
+for I/O (in anticipation of future reads and to imitate the behavior
+with real files).
+.IP "Old package separator ""'"" deprecated" 4
+.IX Item "Old package separator ""'"" deprecated"
+(W deprecated::apostrophe_as_package_separator, syntax) You used the old package
+separator "'" in a variable, subroutine or package name. Support for the
+old package separator will be removed in Perl 5.42.
+.IP "Old package separator used in string" 4
+.IX Item "Old package separator used in string"
+(W deprecated::apostrophe_as_package_separator, syntax) You used the old package
+separator, "'", in a variable named inside a double-quoted string; e.g.,
+\&\f(CW"In $name\*(Aqs house"\fR. This is equivalent to \f(CW"In $name::s house"\fR. If
+you meant the former, put a backslash before the apostrophe
+(\f(CW"In $name\e\*(Aqs house"\fR).
+.Sp
+Support for the old package separator will be removed in Perl 5.42.
+.IP "Only scalar fields can take a :param attribute" 4
+.IX Item "Only scalar fields can take a :param attribute"
+(F) You tried to apply the \f(CW\*(C`:param\*(C'\fR attribute to an array or hash field.
+Currently this is not permitted.
+.ie n .IP "%s() on unopened %s" 4
+.el .IP "%s() on unopened \f(CW%s\fR" 4
+.IX Item "%s() on unopened %s"
+(W unopened) An I/O operation was attempted on a filehandle that was
+never initialized. You need to do an \fBopen()\fR, a \fBsysopen()\fR, or a \fBsocket()\fR
+call, or call a constructor from the FileHandle package.
+.ie n .IP "\-%s on unopened filehandle %s" 4
+.el .IP "\-%s on unopened filehandle \f(CW%s\fR" 4
+.IX Item "-%s on unopened filehandle %s"
+(W unopened) You tried to invoke a file test operator on a filehandle
+that isn't open. Check your control flow. See also "\-X" in perlfunc.
+.IP "oops: oopsAV" 4
+.IX Item "oops: oopsAV"
+(S internal) An internal warning that the grammar is screwed up.
+.IP "oops: oopsHV" 4
+.IX Item "oops: oopsHV"
+(S internal) An internal warning that the grammar is screwed up.
+.IP "Operand with no preceding operator in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Operand with no preceding operator in regex; marked by <--\ HERE in m/%s/"
+(F) You wrote something like
+.Sp
+.Vb 1
+\& (?[ \ep{Digit} \ep{Thai} ])
+.Ve
+.Sp
+There are two operands, but no operator giving how you want to combine
+them.
+.ie n .IP "Operation ""%s"": no method found, %s" 4
+.el .IP "Operation ""%s"": no method found, \f(CW%s\fR" 4
+.IX Item "Operation ""%s"": no method found, %s"
+(F) An attempt was made to perform an overloaded operation for which no
+handler was defined. While some handlers can be autogenerated in terms
+of other handlers, there is no default handler for any operation, unless
+the \f(CW\*(C`fallback\*(C'\fR overloading key is specified to be true. See overload.
+.IP "Operation ""%s"" returns its argument for non-Unicode code point 0x%X" 4
+.IX Item "Operation ""%s"" returns its argument for non-Unicode code point 0x%X"
+(S non_unicode) You performed an operation requiring Unicode rules
+on a code point that is not in Unicode, so what it should do is not
+defined. Perl has chosen to have it do nothing, and warn you.
+.Sp
+If the operation shown is "ToFold", it means that case-insensitive
+matching in a regular expression was done on the code point.
+.Sp
+If you know what you are doing you can turn off this warning by
+\&\f(CW\*(C`no warnings \*(Aqnon_unicode\*(Aq;\*(C'\fR.
+.IP "Operation ""%s"" returns its argument for UTF\-16 surrogate U+%X" 4
+.IX Item "Operation ""%s"" returns its argument for UTF-16 surrogate U+%X"
+(S surrogate) You performed an operation requiring Unicode
+rules on a Unicode surrogate. Unicode frowns upon the use
+of surrogates for anything but storing strings in UTF\-16, but
+rules are (reluctantly) defined for the surrogates, and
+they are to do nothing for this operation. Because the use of
+surrogates can be dangerous, Perl warns.
+.Sp
+If the operation shown is "ToFold", it means that case-insensitive
+matching in a regular expression was done on the code point.
+.Sp
+If you know what you are doing you can turn off this warning by
+\&\f(CW\*(C`no warnings \*(Aqsurrogate\*(Aq;\*(C'\fR.
+.ie n .IP "Operator or semicolon missing before %s" 4
+.el .IP "Operator or semicolon missing before \f(CW%s\fR" 4
+.IX Item "Operator or semicolon missing before %s"
+(S ambiguous) You used a variable or subroutine call where the parser
+was expecting an operator. The parser has assumed you really meant to
+use an operator, but this is highly likely to be incorrect. For
+example, if you say "*foo *foo" it will be interpreted as if you said
+"*foo * 'foo'".
+.IP "Optional parameter lacks default expression" 4
+.IX Item "Optional parameter lacks default expression"
+(F) In a subroutine signature, you wrote something like "$a =", making a
+named optional parameter without a default value. A nameless optional
+parameter is permitted to have no default value, but a named one must
+have a specific default. You probably want "$a = undef".
+.ie n .IP """our"" variable %s redeclared" 4
+.el .IP """our"" variable \f(CW%s\fR redeclared" 4
+.IX Item """our"" variable %s redeclared"
+(W shadow) You seem to have already declared the same global once before
+in the current lexical scope.
+.IP "Out of memory!" 4
+.IX Item "Out of memory!"
+(X) The \fBmalloc()\fR function returned 0, indicating there was insufficient
+remaining memory (or virtual memory) to satisfy the request. Perl has
+no option but to exit immediately.
+.Sp
+At least in Unix you may be able to get past this by increasing your
+process datasize limits: in csh/tcsh use \f(CW\*(C`limit\*(C'\fR and
+\&\f(CW\*(C`limit datasize n\*(C'\fR (where \f(CW\*(C`n\*(C'\fR is the number of kilobytes) to check
+the current limits and change them, and in ksh/bash/zsh use \f(CW\*(C`ulimit \-a\*(C'\fR
+and \f(CW\*(C`ulimit \-d n\*(C'\fR, respectively.
+.ie n .IP "Out of memory during %s extend" 4
+.el .IP "Out of memory during \f(CW%s\fR extend" 4
+.IX Item "Out of memory during %s extend"
+(X) An attempt was made to extend an array, a list, or a string beyond
+the largest possible memory allocation.
+.ie n .IP "Out of memory during ""large"" request for %s" 4
+.el .IP "Out of memory during ""large"" request for \f(CW%s\fR" 4
+.IX Item "Out of memory during ""large"" request for %s"
+(F) The \fBmalloc()\fR function returned 0, indicating there was insufficient
+remaining memory (or virtual memory) to satisfy the request. However,
+the request was judged large enough (compile-time default is 64K), so a
+possibility to shut down by trapping this error is granted.
+.ie n .IP "Out of memory during request for %s" 4
+.el .IP "Out of memory during request for \f(CW%s\fR" 4
+.IX Item "Out of memory during request for %s"
+(X)(F) The \fBmalloc()\fR function returned 0, indicating there was
+insufficient remaining memory (or virtual memory) to satisfy the
+request.
+.Sp
+The request was judged to be small, so the possibility to trap it
+depends on the way perl was compiled. By default it is not trappable.
+However, if compiled for this, Perl may use the contents of \f(CW$^M\fR as an
+emergency pool after \fBdie()\fRing with this message. In this case the error
+is trappable \fIonce\fR, and the error message will include the line and file
+where the failed request happened.
+.IP "Out of memory during ridiculously large request" 4
+.IX Item "Out of memory during ridiculously large request"
+(F) You can't allocate more than 2^31+"small amount" bytes. This error
+is most likely to be caused by a typo in the Perl program. e.g.,
+\&\f(CW$arr[time]\fR instead of \f(CW$arr[$time]\fR.
+.IP "Out of memory for yacc stack" 4
+.IX Item "Out of memory for yacc stack"
+(F) The yacc parser wanted to grow its stack so it could continue
+parsing, but \fBrealloc()\fR wouldn't give it more memory, virtual or
+otherwise.
+.IP "'.' outside of string in pack" 4
+.IX Item "'.' outside of string in pack"
+(F) The argument to a '.' in your template tried to move the working
+position to before the start of the packed string being built.
+.IP "'@' outside of string in unpack" 4
+.IX Item "'@' outside of string in unpack"
+(F) You had a template that specified an absolute position outside
+the string being unpacked. See "pack" in perlfunc.
+.IP "'@' outside of string with malformed UTF\-8 in unpack" 4
+.IX Item "'@' outside of string with malformed UTF-8 in unpack"
+(F) You had a template that specified an absolute position outside
+the string being unpacked. The string being unpacked was also invalid
+UTF\-8. See "pack" in perlfunc.
+.IP "overload arg '%s' is invalid" 4
+.IX Item "overload arg '%s' is invalid"
+(W overload) The overload pragma was passed an argument it did not
+recognize. Did you mistype an operator?
+.IP "Overloaded dereference did not return a reference" 4
+.IX Item "Overloaded dereference did not return a reference"
+(F) An object with an overloaded dereference operator was dereferenced,
+but the overloaded operation did not return a reference. See
+overload.
+.IP "Overloaded qr did not return a REGEXP" 4
+.IX Item "Overloaded qr did not return a REGEXP"
+(F) An object with a \f(CW\*(C`qr\*(C'\fR overload was used as part of a match, but the
+overloaded operation didn't return a compiled regexp. See overload.
+.ie n .IP "%s package attribute may clash with future reserved word: %s" 4
+.el .IP "\f(CW%s\fR package attribute may clash with future reserved word: \f(CW%s\fR" 4
+.IX Item "%s package attribute may clash with future reserved word: %s"
+(W reserved) A lowercase attribute name was used that had a
+package-specific handler. That name might have a meaning to Perl itself
+some day, even though it doesn't yet. Perhaps you should use a
+mixed-case attribute name, instead. See attributes.
+.IP "pack/unpack repeat count overflow" 4
+.IX Item "pack/unpack repeat count overflow"
+(F) You can't specify a repeat count so large that it overflows your
+signed integers. See "pack" in perlfunc.
+.IP "page overflow" 4
+.IX Item "page overflow"
+(W io) A single call to \fBwrite()\fR produced more lines than can fit on a
+page. See perlform.
+.ie n .IP "panic: %s" 4
+.el .IP "panic: \f(CW%s\fR" 4
+.IX Item "panic: %s"
+(P) An internal error.
+.ie n .IP "panic: attempt to call %s in %s" 4
+.el .IP "panic: attempt to call \f(CW%s\fR in \f(CW%s\fR" 4
+.IX Item "panic: attempt to call %s in %s"
+(P) One of the file test operators entered a code branch that calls
+an ACL related-function, but that function is not available on this
+platform. Earlier checks mean that it should not be possible to
+enter this branch on this platform.
+.IP "panic: child pseudo-process was never scheduled" 4
+.IX Item "panic: child pseudo-process was never scheduled"
+(P) A child pseudo-process in the ithreads implementation on Windows
+was not scheduled within the time period allowed and therefore was not
+able to initialize properly.
+.IP "panic: ck_grep, type=%u" 4
+.IX Item "panic: ck_grep, type=%u"
+(P) Failed an internal consistency check trying to compile a grep.
+.ie n .IP "panic: corrupt saved stack index %ld" 4
+.el .IP "panic: corrupt saved stack index \f(CW%ld\fR" 4
+.IX Item "panic: corrupt saved stack index %ld"
+(P) The savestack was requested to restore more localized values than
+there are in the savestack.
+.IP "panic: del_backref" 4
+.IX Item "panic: del_backref"
+(P) Failed an internal consistency check while trying to reset a weak
+reference.
+.ie n .IP "panic: fold_constants JMPENV_PUSH returned %d" 4
+.el .IP "panic: fold_constants JMPENV_PUSH returned \f(CW%d\fR" 4
+.IX Item "panic: fold_constants JMPENV_PUSH returned %d"
+(P) While attempting folding constants an exception other than an \f(CW\*(C`eval\*(C'\fR
+failure was caught.
+.ie n .IP "panic: frexp: %f" 4
+.el .IP "panic: frexp: \f(CW%f\fR" 4
+.IX Item "panic: frexp: %f"
+(P) The library function \fBfrexp()\fR failed, making printf("%f") impossible.
+.IP "panic: goto, type=%u, ix=%ld" 4
+.IX Item "panic: goto, type=%u, ix=%ld"
+(P) We popped the context stack to a context with the specified label,
+and then discovered it wasn't a context we know how to do a goto in.
+.IP "panic: gp_free failed to free glob pointer" 4
+.IX Item "panic: gp_free failed to free glob pointer"
+(P) The internal routine used to clear a typeglob's entries tried
+repeatedly, but each time something re-created entries in the glob.
+Most likely the glob contains an object with a reference back to
+the glob and a destructor that adds a new object to the glob.
+.ie n .IP "panic: INTERPCASEMOD, %s" 4
+.el .IP "panic: INTERPCASEMOD, \f(CW%s\fR" 4
+.IX Item "panic: INTERPCASEMOD, %s"
+(P) The lexer got into a bad state at a case modifier.
+.ie n .IP "panic: INTERPCONCAT, %s" 4
+.el .IP "panic: INTERPCONCAT, \f(CW%s\fR" 4
+.IX Item "panic: INTERPCONCAT, %s"
+(P) The lexer got into a bad state parsing a string with brackets.
+.IP "panic: kid popen errno read" 4
+.IX Item "panic: kid popen errno read"
+(F) A forked child returned an incomprehensible message about its errno.
+.ie n .IP "panic: leave_scope inconsistency %u" 4
+.el .IP "panic: leave_scope inconsistency \f(CW%u\fR" 4
+.IX Item "panic: leave_scope inconsistency %u"
+(P) The savestack probably got out of sync. At least, there was an
+invalid enum on the top of it.
+.IP "panic: magic_killbackrefs" 4
+.IX Item "panic: magic_killbackrefs"
+(P) Failed an internal consistency check while trying to reset all weak
+references to an object.
+.ie n .IP "panic: malloc, %s" 4
+.el .IP "panic: malloc, \f(CW%s\fR" 4
+.IX Item "panic: malloc, %s"
+(P) Something requested a negative number of bytes of malloc.
+.IP "panic: memory wrap" 4
+.IX Item "panic: memory wrap"
+(P) Something tried to allocate either more memory than possible or a
+negative amount.
+.ie n .IP "panic: newFORLOOP, %s" 4
+.el .IP "panic: newFORLOOP, \f(CW%s\fR" 4
+.IX Item "panic: newFORLOOP, %s"
+(P) The parser failed an internal consistency check while trying to parse
+a \f(CW\*(C`foreach\*(C'\fR loop.
+.ie n .IP "panic: pad_alloc, %p!=%p" 4
+.el .IP "panic: pad_alloc, \f(CW%p\fR!=%p" 4
+.IX Item "panic: pad_alloc, %p!=%p"
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+.ie n .IP "panic: pad_free curpad, %p!=%p" 4
+.el .IP "panic: pad_free curpad, \f(CW%p\fR!=%p" 4
+.IX Item "panic: pad_free curpad, %p!=%p"
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+.IP "panic: pad_free po" 4
+.IX Item "panic: pad_free po"
+(P) A zero scratch pad offset was detected internally. An attempt was
+made to free a target that had not been allocated to begin with.
+.ie n .IP "panic: pad_reset curpad, %p!=%p" 4
+.el .IP "panic: pad_reset curpad, \f(CW%p\fR!=%p" 4
+.IX Item "panic: pad_reset curpad, %p!=%p"
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+.IP "panic: pad_sv po" 4
+.IX Item "panic: pad_sv po"
+(P) A zero scratch pad offset was detected internally. Most likely
+an operator needed a target but that target had not been allocated
+for whatever reason.
+.ie n .IP "panic: pad_swipe curpad, %p!=%p" 4
+.el .IP "panic: pad_swipe curpad, \f(CW%p\fR!=%p" 4
+.IX Item "panic: pad_swipe curpad, %p!=%p"
+(P) The compiler got confused about which scratch pad it was allocating
+and freeing temporaries and lexicals from.
+.IP "panic: pad_swipe po" 4
+.IX Item "panic: pad_swipe po"
+(P) An invalid scratch pad offset was detected internally.
+.IP "panic: pp_iter, type=%u" 4
+.IX Item "panic: pp_iter, type=%u"
+(P) The foreach iterator got called in a non-loop context frame.
+.IP "panic: pp_match%s" 4
+.IX Item "panic: pp_match%s"
+(P) The internal \fBpp_match()\fR routine was called with invalid operational
+data.
+.ie n .IP "panic: realloc, %s" 4
+.el .IP "panic: realloc, \f(CW%s\fR" 4
+.IX Item "panic: realloc, %s"
+(P) Something requested a negative number of bytes of realloc.
+.IP "panic: reference miscount on nsv in \fBsv_replace()\fR (%d != 1)" 4
+.IX Item "panic: reference miscount on nsv in sv_replace() (%d != 1)"
+(P) The internal \fBsv_replace()\fR function was handed a new SV with a
+reference count other than 1.
+.ie n .IP "panic: restartop in %s" 4
+.el .IP "panic: restartop in \f(CW%s\fR" 4
+.IX Item "panic: restartop in %s"
+(P) Some internal routine requested a goto (or something like it), and
+didn't supply the destination.
+.IP "panic: return, type=%u" 4
+.IX Item "panic: return, type=%u"
+(P) We popped the context stack to a subroutine or eval context, and
+then discovered it wasn't a subroutine or eval context.
+.ie n .IP "panic: scan_num, %s" 4
+.el .IP "panic: scan_num, \f(CW%s\fR" 4
+.IX Item "panic: scan_num, %s"
+(P) \fBscan_num()\fR got called on something that wasn't a number.
+.IP "panic: Sequence (?{...}): no code block found in regex m/%s/" 4
+.IX Item "panic: Sequence (?{...}): no code block found in regex m/%s/"
+(P) While compiling a pattern that has embedded (?{}) or (??{}) code
+blocks, perl couldn't locate the code block that should have already been
+seen and compiled by perl before control passed to the regex compiler.
+.ie n .IP "panic: sv_chop %s" 4
+.el .IP "panic: sv_chop \f(CW%s\fR" 4
+.IX Item "panic: sv_chop %s"
+(P) The \fBsv_chop()\fR routine was passed a position that is not within the
+scalar's string buffer.
+.IP "panic: sv_insert, midend=%p, bigend=%p" 4
+.IX Item "panic: sv_insert, midend=%p, bigend=%p"
+(P) The \fBsv_insert()\fR routine was told to remove more string than there
+was string.
+.IP "panic: top_env" 4
+.IX Item "panic: top_env"
+(P) The compiler attempted to do a goto, or something weird like that.
+.ie n .IP "panic: unexpected constant lvalue entersub entry via type/targ %d:%d" 4
+.el .IP "panic: unexpected constant lvalue entersub entry via type/targ \f(CW%d:\fR%d" 4
+.IX Item "panic: unexpected constant lvalue entersub entry via type/targ %d:%d"
+(P) When compiling a subroutine call in lvalue context, Perl failed an
+internal consistency check. It encountered a malformed op tree.
+.ie n .IP "panic: unimplemented op %s (#%d) called" 4
+.el .IP "panic: unimplemented op \f(CW%s\fR (#%d) called" 4
+.IX Item "panic: unimplemented op %s (#%d) called"
+(P) The compiler is screwed up and attempted to use an op that isn't
+permitted at run time.
+.ie n .IP "panic: unknown OA_*: %x" 4
+.el .IP "panic: unknown OA_*: \f(CW%x\fR" 4
+.IX Item "panic: unknown OA_*: %x"
+(P) The internal routine that handles arguments to \f(CW&CORE::foo()\fR
+subroutine calls was unable to determine what type of arguments
+were expected.
+.IP "panic: utf16_to_utf8: odd bytelen" 4
+.IX Item "panic: utf16_to_utf8: odd bytelen"
+(P) Something tried to call utf16_to_utf8 with an odd (as opposed
+to even) byte length.
+.IP "panic: utf16_to_utf8_reversed: odd bytelen" 4
+.IX Item "panic: utf16_to_utf8_reversed: odd bytelen"
+(P) Something tried to call utf16_to_utf8_reversed with an odd (as opposed
+to even) byte length.
+.ie n .IP "panic: yylex, %s" 4
+.el .IP "panic: yylex, \f(CW%s\fR" 4
+.IX Item "panic: yylex, %s"
+(P) The lexer got into a bad state while processing a case modifier.
+.IP "Parentheses missing around ""%s"" list" 4
+.IX Item "Parentheses missing around ""%s"" list"
+(W parenthesis) You said something like
+.Sp
+.Vb 1
+\& my $foo, $bar = @_;
+.Ve
+.Sp
+when you meant
+.Sp
+.Vb 1
+\& my ($foo, $bar) = @_;
+.Ve
+.Sp
+Remember that "my", "our", "local" and "state" bind tighter than comma.
+.IP "Parsing code internal error (%s)" 4
+.IX Item "Parsing code internal error (%s)"
+(F) Parsing code supplied by an extension violated the parser's API in
+a detectable way.
+.IP "Pattern subroutine nesting without pos change exceeded limit in regex" 4
+.IX Item "Pattern subroutine nesting without pos change exceeded limit in regex"
+(F) You used a pattern that uses too many nested subpattern calls without
+consuming any text. Restructure the pattern so text is consumed before
+the nesting limit is exceeded.
+.ie n .IP """\-p"" destination: %s" 4
+.el .IP "\f(CW\-p\fR destination: \f(CW%s\fR" 4
+.IX Item "-p destination: %s"
+(F) An error occurred during the implicit output invoked by the \f(CW\*(C`\-p\*(C'\fR
+command-line switch. (This output goes to STDOUT unless you've
+redirected it with \fBselect()\fR.)
+.ie n .IP "Perl API version %s of %s does not match %s" 4
+.el .IP "Perl API version \f(CW%s\fR of \f(CW%s\fR does not match \f(CW%s\fR" 4
+.IX Item "Perl API version %s of %s does not match %s"
+(F) The XS module in question was compiled against a different incompatible
+version of Perl than the one that has loaded the XS module.
+.IP "Perl folding rules are not up-to-date for 0x%X; please use the perlbug utility to report; in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Perl folding rules are not up-to-date for 0x%X; please use the perlbug utility to report; in regex; marked by <--\ HERE in m/%s/"
+(S regexp) You used a regular expression with case-insensitive matching,
+and there is a bug in Perl in which the built-in regular expression
+folding rules are not accurate. This may lead to incorrect results.
+Please report this as a bug to <https://github.com/Perl/perl5/issues/new/choose>.
+.IP "Perl_my_%s() not available" 4
+.IX Item "Perl_my_%s() not available"
+(F) Your platform has very uncommon byte-order and integer size,
+so it was not possible to set up some or all fixed-width byte-order
+conversion functions. This is only a problem when you're using the
+\&'<' or '>' modifiers in (un)pack templates. See "pack" in perlfunc.
+.ie n .IP "Perl %s required (did you mean %s?)\-\-this is only %s, stopped" 4
+.el .IP "Perl \f(CW%s\fR required (did you mean \f(CW%s\fR?)\-\-this is only \f(CW%s\fR, stopped" 4
+.IX Item "Perl %s required (did you mean %s?)--this is only %s, stopped"
+(F) The code you are trying to run has asked for a newer version of
+Perl than you are running. Perhaps \f(CW\*(C`use 5.10\*(C'\fR was written instead
+of \f(CW\*(C`use 5.010\*(C'\fR or \f(CW\*(C`use v5.10\*(C'\fR. Without the leading \f(CW\*(C`v\*(C'\fR, the number is
+interpreted as a decimal, with every three digits after the
+decimal point representing a part of the version number. So 5.10
+is equivalent to v5.100.
+.ie n .IP "Perl %s required\-\-this is only %s, stopped" 4
+.el .IP "Perl \f(CW%s\fR required\-\-this is only \f(CW%s\fR, stopped" 4
+.IX Item "Perl %s required--this is only %s, stopped"
+(F) The module in question uses features of a version of Perl more
+recent than the currently running version. How long has it been since
+you upgraded, anyway? See "require" in perlfunc.
+.IP "PERL_SH_DIR too long" 4
+.IX Item "PERL_SH_DIR too long"
+(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
+\&\f(CW\*(C`sh\*(C'\fR\-shell in. See "PERL_SH_DIR" in perlos2.
+.IP "PERL_SIGNALS illegal: ""%s""" 4
+.IX Item "PERL_SIGNALS illegal: ""%s"""
+(X) See "PERL_SIGNALS" in perlrun for legal values.
+.ie n .IP "Perls since %s too modern\-\-this is %s, stopped" 4
+.el .IP "Perls since \f(CW%s\fR too modern\-\-this is \f(CW%s\fR, stopped" 4
+.IX Item "Perls since %s too modern--this is %s, stopped"
+(F) The code you are trying to run claims it will not run
+on the version of Perl you are using because it is too new.
+Maybe the code needs to be updated, or maybe it is simply
+wrong and the version check should just be removed.
+.IP "perl: warning: Non hex character in '$ENV{PERL_HASH_SEED}', seed only partially set" 4
+.IX Item "perl: warning: Non hex character in '$ENV{PERL_HASH_SEED}', seed only partially set"
+(S) PERL_HASH_SEED should match /^\es*(?:0x)?[0\-9a\-fA\-F]+\es*\ez/ but it
+contained a non hex character. This could mean you are not using the
+hash seed you think you are.
+.IP "perl: warning: Setting locale failed." 4
+.IX Item "perl: warning: Setting locale failed."
+(S) The whole warning message will look something like:
+.Sp
+.Vb 6
+\& perl: warning: Setting locale failed.
+\& perl: warning: Please check that your locale settings:
+\& LC_ALL = "En_US",
+\& LANG = (unset)
+\& are supported and installed on your system.
+\& perl: warning: Falling back to the standard locale ("C").
+.Ve
+.Sp
+Exactly what were the failed locale settings varies. In the above the
+settings were that the LC_ALL was "En_US" and the LANG had no value.
+This error means that Perl detected that you and/or your operating
+system supplier and/or system administrator have set up the so-called
+locale system but Perl could not use those settings. This was not
+dead serious, fortunately: there is a "default locale" called "C" that
+Perl can and will use, and the script will be run. Before you really
+fix the problem, however, you will get the same error message each
+time you run Perl. How to really fix the problem can be found in
+perllocale section \fBLOCALE PROBLEMS\fR.
+.IP "perl: warning: strange setting in '$ENV{PERL_PERTURB_KEYS}': '%s'" 4
+.IX Item "perl: warning: strange setting in '$ENV{PERL_PERTURB_KEYS}': '%s'"
+(S) Perl was run with the environment variable PERL_PERTURB_KEYS defined
+but containing an unexpected value. The legal values of this setting
+are as follows.
+.Sp
+.Vb 6
+\& Numeric | String | Result
+\& \-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\& 0 | NO | Disables key traversal randomization
+\& 1 | RANDOM | Enables full key traversal randomization
+\& 2 | DETERMINISTIC | Enables repeatable key traversal
+\& | | randomization
+.Ve
+.Sp
+Both numeric and string values are accepted, but note that string values are
+case sensitive. The default for this setting is "RANDOM" or 1.
+.ie n .IP "pid %x not a child" 4
+.el .IP "pid \f(CW%x\fR not a child" 4
+.IX Item "pid %x not a child"
+(W exec) A warning peculiar to VMS. \fBWaitpid()\fR was asked to wait for a
+process which isn't a subprocess of the current process. While this is
+fine from VMS' perspective, it's probably not what you intended.
+.IP "'P' must have an explicit size in unpack" 4
+.IX Item "'P' must have an explicit size in unpack"
+(F) The unpack format P must have an explicit size, not "*".
+.IP "POSIX class [:%s:] unknown in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "POSIX class [:%s:] unknown in regex; marked by <--\ HERE in m/%s/"
+(F) The class in the character class [: :] syntax is unknown. The <\-\-\ HERE
+shows whereabouts in the regular expression the problem was discovered.
+Note that the POSIX character classes do \fBnot\fR have the \f(CW\*(C`is\*(C'\fR prefix
+the corresponding C interfaces have: in other words, it's \f(CW\*(C`[[:print:]]\*(C'\fR,
+not \f(CW\*(C`isprint\*(C'\fR. See perlre.
+.IP "POSIX getpgrp can't take an argument" 4
+.IX Item "POSIX getpgrp can't take an argument"
+(F) Your system has POSIX \fBgetpgrp()\fR, which takes no argument, unlike
+the BSD version, which takes a pid.
+.ie n .IP "POSIX syntax [%c %c] belongs inside character classes%s in regex; marked by <\-\-\ HERE in m/%s/" 4
+.el .IP "POSIX syntax [%c \f(CW%c\fR] belongs inside character classes%s in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "POSIX syntax [%c %c] belongs inside character classes%s in regex; marked by <--\ HERE in m/%s/"
+(W regexp) Perl thinks that you intended to write a POSIX character
+class, but didn't use enough brackets. These POSIX class constructs [:
+:], [= =], and [. .] go \fIinside\fR character classes, the [] are part of
+the construct, for example: \f(CW\*(C`qr/[012[:alpha:]345]/\*(C'\fR. What the regular
+expression pattern compiled to is probably not what you were intending.
+For example, \f(CW\*(C`qr/[:alpha:]/\*(C'\fR compiles to a regular bracketed character
+class consisting of the four characters \f(CW":"\fR, \f(CW"a"\fR, \f(CW"l"\fR,
+\&\f(CW"h"\fR, and \f(CW"p"\fR. To specify the POSIX class, it should have been
+written \f(CW\*(C`qr/[[:alpha:]]/\*(C'\fR.
+.Sp
+Note that [= =] and [. .] are not currently
+implemented; they are simply placeholders for future extensions and
+will cause fatal errors. The <\-\-\ HERE shows whereabouts in the regular
+expression the problem was discovered. See perlre.
+.Sp
+If the specification of the class was not completely valid, the message
+indicates that.
+.IP "POSIX syntax [. .] is reserved for future extensions in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "POSIX syntax [. .] is reserved for future extensions in regex; marked by <--\ HERE in m/%s/"
+(F) Within regular expression character classes ([]) the syntax beginning
+with "[." and ending with ".]" is reserved for future extensions. If you
+need to represent those character sequences inside a regular expression
+character class, just quote the square brackets with the backslash: "\e[."
+and ".\e]". The <\-\-\ HERE shows whereabouts in the regular expression the
+problem was discovered. See perlre.
+.IP "POSIX syntax [= =] is reserved for future extensions in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "POSIX syntax [= =] is reserved for future extensions in regex; marked by <--\ HERE in m/%s/"
+(F) Within regular expression character classes ([]) the syntax beginning
+with "[=" and ending with "=]" is reserved for future extensions. If you
+need to represent those character sequences inside a regular expression
+character class, just quote the square brackets with the backslash: "\e[="
+and "=\e]". The <\-\-\ HERE shows whereabouts in the regular expression the
+problem was discovered. See perlre.
+.IP "Possible attempt to put comments in \fBqw()\fR list" 4
+.IX Item "Possible attempt to put comments in qw() list"
+(W qw) \fBqw()\fR lists contain items separated by whitespace; as with literal
+strings, comment characters are not ignored, but are instead treated as
+literal data. (You may have used different delimiters than the
+parentheses shown here; braces are also frequently used.)
+.Sp
+You probably wrote something like this:
+.Sp
+.Vb 4
+\& @list = qw(
+\& a # a comment
+\& b # another comment
+\& );
+.Ve
+.Sp
+when you should have written this:
+.Sp
+.Vb 4
+\& @list = qw(
+\& a
+\& b
+\& );
+.Ve
+.Sp
+If you really want comments, build your list the
+old-fashioned way, with quotes and commas:
+.Sp
+.Vb 4
+\& @list = (
+\& \*(Aqa\*(Aq, # a comment
+\& \*(Aqb\*(Aq, # another comment
+\& );
+.Ve
+.IP "Possible attempt to separate words with commas" 4
+.IX Item "Possible attempt to separate words with commas"
+(W qw) \fBqw()\fR lists contain items separated by whitespace; therefore
+commas aren't needed to separate the items. (You may have used
+different delimiters than the parentheses shown here; braces are also
+frequently used.)
+.Sp
+You probably wrote something like this:
+.Sp
+.Vb 1
+\& qw! a, b, c !;
+.Ve
+.Sp
+which puts literal commas into some of the list items. Write it without
+commas if you don't want them to appear in your data:
+.Sp
+.Vb 1
+\& qw! a b c !;
+.Ve
+.ie n .IP "Possible memory corruption: %s overflowed 3rd argument" 4
+.el .IP "Possible memory corruption: \f(CW%s\fR overflowed 3rd argument" 4
+.IX Item "Possible memory corruption: %s overflowed 3rd argument"
+(F) An \fBioctl()\fR or \fBfcntl()\fR returned more than Perl was bargaining for.
+Perl guesses a reasonable buffer size, but puts a sentinel byte at the
+end of the buffer just in case. This sentinel byte got clobbered, and
+Perl assumes that memory is now corrupted. See "ioctl" in perlfunc.
+.IP "Possible precedence issue with control flow operator" 4
+.IX Item "Possible precedence issue with control flow operator"
+(W syntax) There is a possible problem with the mixing of a control
+flow operator (e.g. \f(CW\*(C`return\*(C'\fR) and a low-precedence operator like
+\&\f(CW\*(C`or\*(C'\fR. Consider:
+.Sp
+.Vb 1
+\& sub { return $a or $b; }
+.Ve
+.Sp
+This is parsed as:
+.Sp
+.Vb 1
+\& sub { (return $a) or $b; }
+.Ve
+.Sp
+Which is effectively just:
+.Sp
+.Vb 1
+\& sub { return $a; }
+.Ve
+.Sp
+Either use parentheses or the high-precedence variant of the operator.
+.Sp
+Note this may be also triggered for constructs like:
+.Sp
+.Vb 1
+\& sub { 1 if die; }
+.Ve
+.ie n .IP "Possible precedence problem on bitwise %s operator" 4
+.el .IP "Possible precedence problem on bitwise \f(CW%s\fR operator" 4
+.IX Item "Possible precedence problem on bitwise %s operator"
+(W precedence) Your program uses a bitwise logical operator in conjunction
+with a numeric comparison operator, like this :
+.Sp
+.Vb 1
+\& if ($x & $y == 0) { ... }
+.Ve
+.Sp
+This expression is actually equivalent to \f(CW\*(C`$x & ($y == 0)\*(C'\fR, due to the
+higher precedence of \f(CW\*(C`==\*(C'\fR. This is probably not what you want. (If you
+really meant to write this, disable the warning, or, better, put the
+parentheses explicitly and write \f(CW\*(C`$x & ($y == 0)\*(C'\fR).
+.IP "Possible unintended interpolation of $\e in regex" 4
+.IX Item "Possible unintended interpolation of $ in regex"
+(W ambiguous) You said something like \f(CW\*(C`m/$\e/\*(C'\fR in a regex.
+The regex \f(CW\*(C`m/foo$\es+bar/m\*(C'\fR translates to: match the word 'foo', the output
+record separator (see "$\e" in perlvar) and the letter 's' (one time or more)
+followed by the word 'bar'.
+.Sp
+If this is what you intended then you can silence the warning by using
+\&\f(CW\*(C`m/${\e}/\*(C'\fR (for example: \f(CW\*(C`m/foo${\e}s+bar/\*(C'\fR).
+.Sp
+If instead you intended to match the word 'foo' at the end of the line
+followed by whitespace and the word 'bar' on the next line then you can use
+\&\f(CW\*(C`m/$(?)\e/\*(C'\fR (for example: \f(CW\*(C`m/foo$(?)\es+bar/\*(C'\fR).
+.ie n .IP "Possible unintended interpolation of %s in string" 4
+.el .IP "Possible unintended interpolation of \f(CW%s\fR in string" 4
+.IX Item "Possible unintended interpolation of %s in string"
+(W ambiguous) You said something like '@foo' in a double-quoted string
+but there was no array \f(CW@foo\fR in scope at the time. If you wanted a
+literal \f(CW@foo\fR, then write it as \e@foo; otherwise find out what happened
+to the array you apparently lost track of.
+.ie n .IP "Precedence problem: open %s should be open(%s)" 4
+.el .IP "Precedence problem: open \f(CW%s\fR should be open(%s)" 4
+.IX Item "Precedence problem: open %s should be open(%s)"
+(S precedence) The old irregular construct
+.Sp
+.Vb 1
+\& open FOO || die;
+.Ve
+.Sp
+is now misinterpreted as
+.Sp
+.Vb 1
+\& open(FOO || die);
+.Ve
+.Sp
+because of the strict regularization of Perl 5's grammar into unary and
+list operators. (The old open was a little of both.) You must put
+parentheses around the filehandle, or use the new "or" operator instead
+of "||".
+.IP "Premature end of script headers" 4
+.IX Item "Premature end of script headers"
+See "500 Server error".
+.ie n .IP "\fBprintf()\fR on closed filehandle %s" 4
+.el .IP "\fBprintf()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "printf() on closed filehandle %s"
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your control flow.
+.ie n .IP "\fBprint()\fR on closed filehandle %s" 4
+.el .IP "\fBprint()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "print() on closed filehandle %s"
+(W closed) The filehandle you're printing on got itself closed sometime
+before now. Check your control flow.
+.IP "Process terminated by SIG%s" 4
+.IX Item "Process terminated by SIG%s"
+(W) This is a standard message issued by OS/2 applications, while *nix
+applications die in silence. It is considered a feature of the OS/2
+port. One can easily disable this by appropriate sighandlers, see
+"Signals" in perlipc. See also "Process terminated by SIGTERM/SIGINT"
+in perlos2.
+.ie n .IP "Prototype after '%c' for %s : %s" 4
+.el .IP "Prototype after '%c' for \f(CW%s\fR : \f(CW%s\fR" 4
+.IX Item "Prototype after '%c' for %s : %s"
+(W illegalproto) A character follows % or @ in a prototype. This is
+useless, since % and @ gobble the rest of the subroutine arguments.
+.ie n .IP "Prototype mismatch: %s vs %s" 4
+.el .IP "Prototype mismatch: \f(CW%s\fR vs \f(CW%s\fR" 4
+.IX Item "Prototype mismatch: %s vs %s"
+(S prototype) The subroutine being declared or defined had previously been
+declared or defined with a different function prototype.
+.IP "Prototype not terminated" 4
+.IX Item "Prototype not terminated"
+(F) You've omitted the closing parenthesis in a function prototype
+definition.
+.ie n .IP "Prototype '%s' overridden by attribute 'prototype(%s)' in %s" 4
+.el .IP "Prototype '%s' overridden by attribute 'prototype(%s)' in \f(CW%s\fR" 4
+.IX Item "Prototype '%s' overridden by attribute 'prototype(%s)' in %s"
+(W prototype) A prototype was declared in both the parentheses after
+the sub name and via the prototype attribute. The prototype in
+parentheses is useless, since it will be replaced by the prototype
+from the attribute before it's ever used.
+.ie n .IP "%s on BEGIN block ignored" 4
+.el .IP "\f(CW%s\fR on BEGIN block ignored" 4
+.IX Item "%s on BEGIN block ignored"
+(W syntax) \f(CW\*(C`BEGIN\*(C'\fR blocks are executed immediately after they are parsed
+and then thrown away. Any prototypes or attributes are therefore
+meaningless and are ignored. You should remove them from the \f(CW\*(C`BEGIN\*(C'\fR block.
+Note this also means you cannot create a constant called \f(CW\*(C`BEGIN\*(C'\fR.
+.IP "Quantifier follows nothing in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Quantifier follows nothing in regex; marked by <--\ HERE in m/%s/"
+(F) You started a regular expression with a quantifier. Backslash it if
+you meant it literally. The <\-\-\ HERE shows whereabouts in the regular
+expression the problem was discovered. See perlre.
+.ie n .IP "Quantifier in {,} bigger than %d in regex; marked by <\-\-\ HERE in m/%s/" 4
+.el .IP "Quantifier in {,} bigger than \f(CW%d\fR in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Quantifier in {,} bigger than %d in regex; marked by <--\ HERE in m/%s/"
+(F) There is currently a limit to the size of the min and max values of
+the {min,max} construct. The <\-\-\ HERE shows whereabouts in the regular
+expression the problem was discovered. See perlre.
+.IP "Quantifier {n,m} with n > m can't match in regex" 4
+.IX Item "Quantifier {n,m} with n > m can't match in regex"
+.PD 0
+.IP "Quantifier {n,m} with n > m can't match in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Quantifier {n,m} with n > m can't match in regex; marked by <--\ HERE in m/%s/"
+.PD
+(W regexp) Minima should be less than or equal to maxima. If you really
+want your regexp to match something 0 times, just put {0}.
+.IP "Quantifier unexpected on zero-length expression in regex m/%s/" 4
+.IX Item "Quantifier unexpected on zero-length expression in regex m/%s/"
+(W regexp) You applied a regular expression quantifier in a place where
+it makes no sense, such as on a zero-width assertion. Try putting the
+quantifier inside the assertion instead. For example, the way to match
+"abc" provided that it is followed by three repetitions of "xyz" is
+\&\f(CW\*(C`/abc(?=(?:xyz){3})/\*(C'\fR, not \f(CW\*(C`/abc(?=xyz){3}/\*(C'\fR.
+.IP "Range iterator outside integer range" 4
+.IX Item "Range iterator outside integer range"
+(F) One (or both) of the numeric arguments to the range operator ".."
+are outside the range which can be represented by integers internally.
+One possible workaround is to force Perl to use magical string increment
+by prepending "0" to your numbers.
+.IP "Ranges of ASCII printables should be some subset of ""0\-9"", ""A\-Z"", or ""a\-z"" in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Ranges of ASCII printables should be some subset of ""0-9"", ""A-Z"", or ""a-z"" in regex; marked by <--\ HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR or within \f(CW\*(C`(?[...])\*(C'\fR)
+.Sp
+Stricter rules help to find typos and other errors. Perhaps you didn't
+even intend a range here, if the \f(CW"\-"\fR was meant to be some other
+character, or should have been escaped (like \f(CW"\e\-"\fR). If you did
+intend a range, the one that was used is not portable between ASCII and
+EBCDIC platforms, and doesn't have an obvious meaning to a casual
+reader.
+.Sp
+.Vb 7
+\& [3\-7] # OK; Obvious and portable
+\& [d\-g] # OK; Obvious and portable
+\& [A\-Y] # OK; Obvious and portable
+\& [A\-z] # WRONG; Not portable; not clear what is meant
+\& [a\-Z] # WRONG; Not portable; not clear what is meant
+\& [%\-.] # WRONG; Not portable; not clear what is meant
+\& [\ex41\-Z] # WRONG; Not portable; not obvious to non\-geek
+.Ve
+.Sp
+(You can force portability by specifying a Unicode range, which means that
+the endpoints are specified by
+\&\f(CW\*(C`\eN{...}\*(C'\fR, but the meaning may
+still not be obvious.)
+The stricter rules require that ranges that start or stop with an ASCII
+character that is not a control have all their endpoints be the literal
+character, and not some escape sequence (like \f(CW"\ex41"\fR), and the ranges
+must be all digits, or all uppercase letters, or all lowercase letters.
+.IP "Ranges of digits should be from the same group in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Ranges of digits should be from the same group in regex; marked by <--\ HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR or within \f(CW\*(C`(?[...])\*(C'\fR)
+.Sp
+Stricter rules help to find typos and other errors. You included a
+range, and at least one of the end points is a decimal digit. Under the
+stricter rules, when this happens, both end points should be digits in
+the same group of 10 consecutive digits.
+.ie n .IP "\fBreaddir()\fR attempted on invalid dirhandle %s" 4
+.el .IP "\fBreaddir()\fR attempted on invalid dirhandle \f(CW%s\fR" 4
+.IX Item "readdir() attempted on invalid dirhandle %s"
+(W io) The dirhandle you're reading from is either closed or not really
+a dirhandle. Check your control flow.
+.ie n .IP "\fBreadline()\fR on closed filehandle %s" 4
+.el .IP "\fBreadline()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "readline() on closed filehandle %s"
+(W closed) The filehandle you're reading from got itself closed sometime
+before now. Check your control flow.
+.ie n .IP "\fBreadline()\fR on unopened filehandle %s" 4
+.el .IP "\fBreadline()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "readline() on unopened filehandle %s"
+(W unopened) The filehandle you're reading from was never opened. Check your
+control flow.
+.ie n .IP "\fBread()\fR on closed filehandle %s" 4
+.el .IP "\fBread()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "read() on closed filehandle %s"
+(W closed) You tried to read from a closed filehandle.
+.ie n .IP "\fBread()\fR on unopened filehandle %s" 4
+.el .IP "\fBread()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "read() on unopened filehandle %s"
+(W unopened) You tried to read from a filehandle that was never opened.
+.IP "\fBrealloc()\fR of freed memory ignored" 4
+.IX Item "realloc() of freed memory ignored"
+(S malloc) An internal routine called \fBrealloc()\fR on something that had
+already been freed.
+.IP "Recompile perl with \fB\-D\fRDEBUGGING to use \fB\-D\fR switch" 4
+.IX Item "Recompile perl with -DDEBUGGING to use -D switch"
+(S debugging) You can't use the \fB\-D\fR option unless the code to produce
+the desired output is compiled into Perl, which entails some overhead,
+which is why it's currently left out of your copy.
+.IP "Recursive call to Perl_load_module in PerlIO_find_layer" 4
+.IX Item "Recursive call to Perl_load_module in PerlIO_find_layer"
+(P) It is currently not permitted to load modules when creating
+a filehandle inside an \f(CW%INC\fR hook. This can happen with \f(CW\*(C`open my
+$fh, \*(Aq<\*(Aq, \e$scalar\*(C'\fR, which implicitly loads PerlIO::scalar. Try
+loading PerlIO::scalar explicitly first.
+.IP "Recursive inheritance detected in package '%s'" 4
+.IX Item "Recursive inheritance detected in package '%s'"
+(F) While calculating the method resolution order (MRO) of a package, Perl
+believes it found an infinite loop in the \f(CW@ISA\fR hierarchy. This is a
+crude check that bails out after 100 levels of \f(CW@ISA\fR depth.
+.ie n .IP "Redundant argument in %s" 4
+.el .IP "Redundant argument in \f(CW%s\fR" 4
+.IX Item "Redundant argument in %s"
+(W redundant) You called a function with more arguments than other
+arguments you supplied indicated would be needed. Currently only
+emitted when a printf-type format required fewer arguments than were
+supplied, but might be used in the future for e.g. "pack" in perlfunc.
+.ie n .IP "refcnt_dec: fd %d%s" 4
+.el .IP "refcnt_dec: fd \f(CW%d\fR%s" 4
+.IX Item "refcnt_dec: fd %d%s"
+.PD 0
+.ie n .IP "refcnt: fd %d%s" 4
+.el .IP "refcnt: fd \f(CW%d\fR%s" 4
+.IX Item "refcnt: fd %d%s"
+.ie n .IP "refcnt_inc: fd %d%s" 4
+.el .IP "refcnt_inc: fd \f(CW%d\fR%s" 4
+.IX Item "refcnt_inc: fd %d%s"
+.PD
+(P) Perl's I/O implementation failed an internal consistency check. If
+you see this message, something is very wrong.
+.IP "Reference found where even-sized list expected" 4
+.IX Item "Reference found where even-sized list expected"
+(W misc) You gave a single reference where Perl was expecting a list
+with an even number of elements (for assignment to a hash). This
+usually means that you used the anon hash constructor when you meant
+to use parens. In any case, a hash requires key/value \fBpairs\fR.
+.Sp
+.Vb 4
+\& %hash = { one => 1, two => 2, }; # WRONG
+\& %hash = [ qw/ an anon array / ]; # WRONG
+\& %hash = ( one => 1, two => 2, ); # right
+\& %hash = qw( one 1 two 2 ); # also fine
+.Ve
+.IP "Reference is already weak" 4
+.IX Item "Reference is already weak"
+(W misc) You have attempted to weaken a reference that is already weak.
+Doing so has no effect.
+.IP "Reference is not weak" 4
+.IX Item "Reference is not weak"
+(W misc) You have attempted to unweaken a reference that is not weak.
+Doing so has no effect.
+.IP "Reference to invalid group 0 in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Reference to invalid group 0 in regex; marked by <--\ HERE in m/%s/"
+(F) You used \f(CW\*(C`\eg0\*(C'\fR or similar in a regular expression. You may refer
+to capturing parentheses only with strictly positive integers
+(normal backreferences) or with strictly negative integers (relative
+backreferences). Using 0 does not make sense.
+.IP "Reference to nonexistent group in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Reference to nonexistent group in regex; marked by <--\ HERE in m/%s/"
+(F) You used something like \f(CW\*(C`\e7\*(C'\fR in your regular expression, but there are
+not at least seven sets of capturing parentheses in the expression. If
+you wanted to have the character with ordinal 7 inserted into the regular
+expression, prepend zeroes to make it three digits long: \f(CW\*(C`\e007\*(C'\fR
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Reference to nonexistent named group in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Reference to nonexistent named group in regex; marked by <--\ HERE in m/%s/"
+(F) You used something like \f(CW\*(C`\ek\*(AqNAME\*(Aq\*(C'\fR or \f(CW\*(C`\ek<NAME>\*(C'\fR in your regular
+expression, but there is no corresponding named capturing parentheses
+such as \f(CW\*(C`(?\*(AqNAME\*(Aq...)\*(C'\fR or \f(CW\*(C`(?<NAME>...)\*(C'\fR. Check if the name has been
+spelled correctly both in the backreference and the declaration.
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Reference to nonexistent or unclosed group in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Reference to nonexistent or unclosed group in regex; marked by <--\ HERE in m/%s/"
+(F) You used something like \f(CW\*(C`\eg{\-7}\*(C'\fR in your regular expression, but there
+are not at least seven sets of closed capturing parentheses in the
+expression before where the \f(CW\*(C`\eg{\-7}\*(C'\fR was located.
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "regexp memory corruption" 4
+.IX Item "regexp memory corruption"
+(P) The regular expression engine got confused by what the regular
+expression compiler gave it.
+.IP "Regexp modifier ""/%c"" may appear a maximum of twice" 4
+.IX Item "Regexp modifier ""/%c"" may appear a maximum of twice"
+.PD 0
+.IP "Regexp modifier ""%c"" may appear a maximum of twice in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Regexp modifier ""%c"" may appear a maximum of twice in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) The regular expression pattern had too many occurrences
+of the specified modifier. Remove the extraneous ones.
+.IP "Regexp modifier ""%c"" may not appear after the ""\-"" in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Regexp modifier ""%c"" may not appear after the ""-"" in regex; marked by <-- HERE in m/%s/"
+(F) Turning off the given modifier has the side effect of turning on
+another one. Perl currently doesn't allow this. Reword the regular
+expression to use the modifier you want to turn on (and place it before
+the minus), instead of the one you want to turn off.
+.IP "Regexp modifier ""/%c"" may not appear twice" 4
+.IX Item "Regexp modifier ""/%c"" may not appear twice"
+.PD 0
+.IP "Regexp modifier ""%c"" may not appear twice in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Regexp modifier ""%c"" may not appear twice in regex; marked by <-- HERE in m/%s/"
+.PD
+(F) The regular expression pattern had too many occurrences
+of the specified modifier. Remove the extraneous ones.
+.IP "Regexp modifiers ""/%c"" and ""/%c"" are mutually exclusive" 4
+.IX Item "Regexp modifiers ""/%c"" and ""/%c"" are mutually exclusive"
+.PD 0
+.IP "Regexp modifiers ""%c"" and ""%c"" are mutually exclusive in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Regexp modifiers ""%c"" and ""%c"" are mutually exclusive in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) The regular expression pattern had more than one of these
+mutually exclusive modifiers. Retain only the modifier that is
+supposed to be there.
+.IP "Regexp out of space in regex m/%s/" 4
+.IX Item "Regexp out of space in regex m/%s/"
+(P) A "can't happen" error, because \fBsafemalloc()\fR should have caught it
+earlier.
+.IP "Repeated format line will never terminate (~~ and @#)" 4
+.IX Item "Repeated format line will never terminate (~~ and @#)"
+(F) Your format contains the ~~ repeat-until-blank sequence and a
+numeric field that will never go blank so that the repetition never
+terminates. You might use ^# instead. See perlform.
+.IP "Replacement list is longer than search list" 4
+.IX Item "Replacement list is longer than search list"
+(W misc) You have used a replacement list that is longer than the
+search list. So the additional elements in the replacement list
+are meaningless.
+.ie n .IP "Required parameter '%s' is missing for %s constructor" 4
+.el .IP "Required parameter '%s' is missing for \f(CW%s\fR constructor" 4
+.IX Item "Required parameter '%s' is missing for %s constructor"
+(F) You called the constructor for a class that has a required named
+parameter, but did not pass that parameter at all.
+.IP "'(*%s' requires a terminating ':' in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "'(*%s' requires a terminating ':' in regex; marked by <-- HERE in m/%s/"
+(F) You used a construct that needs a colon and pattern argument.
+Supply these or check that you are using the right construct.
+.IP "'%s' resolved to '\eo{%s}%d'" 4
+.IX Item "'%s' resolved to 'o{%s}%d'"
+As of Perl 5.32, this message is no longer generated. Instead, see
+"Non-octal character '%c' terminates \eo early. Resolved as "%s"".
+(W misc, regexp) You wrote something like \f(CW\*(C`\e08\*(C'\fR, or \f(CW\*(C`\e179\*(C'\fR in a
+double-quotish string. All but the last digit is treated as a single
+character, specified in octal. The last digit is the next character in
+the string. To tell Perl that this is indeed what you want, you can use
+the \f(CW\*(C`\eo{ }\*(C'\fR syntax, or use exactly three digits to specify the octal
+for the character.
+.ie n .IP "Reversed %s= operator" 4
+.el .IP "Reversed \f(CW%s\fR= operator" 4
+.IX Item "Reversed %s= operator"
+(W syntax) You wrote your assignment operator backwards. The = must
+always come last, to avoid ambiguity with subsequent unary operators.
+.ie n .IP "\fBrewinddir()\fR attempted on invalid dirhandle %s" 4
+.el .IP "\fBrewinddir()\fR attempted on invalid dirhandle \f(CW%s\fR" 4
+.IX Item "rewinddir() attempted on invalid dirhandle %s"
+(W io) The dirhandle you tried to do a \fBrewinddir()\fR on is either closed
+or not really a dirhandle. Check your control flow.
+.ie n .IP "Scalars leaked: %d" 4
+.el .IP "Scalars leaked: \f(CW%d\fR" 4
+.IX Item "Scalars leaked: %d"
+(S internal) Something went wrong in Perl's internal bookkeeping
+of scalars: not all scalar variables were deallocated by the time
+Perl exited. What this usually indicates is a memory leak, which
+is of course bad, especially if the Perl program is intended to be
+long-running.
+.IP "Scalar value @%s[%s] better written as $%s[%s]" 4
+.IX Item "Scalar value @%s[%s] better written as $%s[%s]"
+(W syntax) You've used an array slice (indicated by @) to select a
+single element of an array. Generally it's better to ask for a scalar
+value (indicated by $). The difference is that \f(CW$foo[&bar]\fR always
+behaves like a scalar, both when assigning to it and when evaluating its
+argument, while \f(CW@foo[&bar]\fR 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 expecting only one subscript.
+.Sp
+On the other hand, if you were actually hoping to treat the array
+element as a list, you need to look into how references work, because
+Perl will not magically convert between scalars and lists for you. See
+perlref.
+.IP "Scalar value @%s{%s} better written as $%s{%s}" 4
+.IX Item "Scalar value @%s{%s} better written as $%s{%s}"
+(W syntax) You've used a hash slice (indicated by @) to select a single
+element of a hash. Generally it's better to ask for a scalar value
+(indicated by $). The difference is that \f(CW$foo{&bar}\fR always behaves
+like a scalar, both when assigning to it and when evaluating its
+argument, while \f(CW@foo{&bar}\fR 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 expecting only one subscript.
+.Sp
+On the other hand, if you were actually hoping to treat the hash element
+as a list, you need to look into how references work, because Perl will
+not magically convert between scalars and lists for you. See
+perlref.
+.IP "Search pattern not terminated" 4
+.IX Item "Search pattern not terminated"
+(F) The lexer couldn't find the final delimiter of a // or m{}
+construct. Remember that bracketing delimiters count nesting level.
+Missing the leading \f(CW\*(C`$\*(C'\fR from a variable \f(CW$m\fR may cause this error.
+.Sp
+Note that since Perl 5.10.0 a // can also be the \fIdefined-or\fR
+construct, not just the empty search pattern. Therefore code written
+in Perl 5.10.0 or later that uses the // as the \fIdefined-or\fR can be
+misparsed by pre\-5.10.0 Perls as a non-terminated search pattern.
+.ie n .IP "\fBseekdir()\fR attempted on invalid dirhandle %s" 4
+.el .IP "\fBseekdir()\fR attempted on invalid dirhandle \f(CW%s\fR" 4
+.IX Item "seekdir() attempted on invalid dirhandle %s"
+(W io) The dirhandle you are doing a \fBseekdir()\fR on is either closed or not
+really a dirhandle. Check your control flow.
+.IP "%\fBsseek()\fR on unopened filehandle" 4
+.IX Item "%sseek() on unopened filehandle"
+(W unopened) You tried to use the \fBseek()\fR or \fBsysseek()\fR function on a
+filehandle that was either never opened or has since been closed.
+.IP "select not implemented" 4
+.IX Item "select not implemented"
+(F) This machine doesn't implement the \fBselect()\fR system call.
+.IP "Self-ties of arrays and hashes are not supported" 4
+.IX Item "Self-ties of arrays and hashes are not supported"
+(F) Self-ties are of arrays and hashes are not supported in
+the current implementation.
+.IP "Semicolon seems to be missing" 4
+.IX Item "Semicolon seems to be missing"
+(W semicolon) A nearby syntax error was probably caused by a missing
+semicolon, or possibly some other missing operator, such as a comma.
+.IP "semi-panic: attempt to dup freed string" 4
+.IX Item "semi-panic: attempt to dup freed string"
+(S internal) The internal \fBnewSVsv()\fR routine was called to duplicate a
+scalar that had previously been marked as free.
+.IP "sem%s not implemented" 4
+.IX Item "sem%s not implemented"
+(F) You don't have System V semaphore IPC on your system.
+.ie n .IP "\fBsend()\fR on closed socket %s" 4
+.el .IP "\fBsend()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "send() on closed socket %s"
+(W closed) The socket you're sending to got itself closed sometime
+before now. Check your control flow.
+.IP "Sequence ""\ec{"" invalid" 4
+.IX Item "Sequence ""c{"" invalid"
+(F) These three characters may not appear in sequence in a
+double-quotish context. This message is raised only on non-ASCII
+platforms (a different error message is output on ASCII ones). If you
+were intending to specify a control character with this sequence, you'll
+have to use a different way to specify it.
+.IP "Sequence (? incomplete in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (? incomplete in regex; marked by <--\ HERE in m/%s/"
+(F) A regular expression ended with an incomplete extension (?. The
+<\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. See perlre.
+.IP "Sequence (?%c...) not implemented in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?%c...) not implemented in regex; marked by <--\ HERE in m/%s/"
+(F) A proposed regular expression extension has the character reserved
+but has not yet been written. The <\-\-\ HERE shows whereabouts in the
+regular expression the problem was discovered. See perlre.
+.IP "Sequence (?%s...) not recognized in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?%s...) not recognized in regex; marked by <--\ HERE in m/%s/"
+(F) You used a regular expression extension that doesn't make sense.
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. This may happen when using the \f(CW\*(C`(?^...)\*(C'\fR construct to tell
+Perl to use the default regular expression modifiers, and you
+redundantly specify a default modifier. For other
+causes, see perlre.
+.IP "Sequence (?#... not terminated in regex m/%s/" 4
+.IX Item "Sequence (?#... not terminated in regex m/%s/"
+(F) A regular expression comment must be terminated by a closing
+parenthesis. Embedded parentheses aren't allowed. See
+perlre.
+.IP "Sequence (?&... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?&... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named reference of the form \f(CW\*(C`(?&...)\*(C'\fR was missing the final
+closing parenthesis after the name. The <\-\-\ HERE shows whereabouts
+in the regular expression the problem was discovered.
+.IP "Sequence (?%c... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?%c... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named group of the form \f(CW\*(C`(?\*(Aq...\*(Aq)\*(C'\fR or \f(CW\*(C`(?<...>)\*(C'\fR was missing the final
+closing quote or angle bracket. The <\-\-\ HERE shows whereabouts in the
+regular expression the problem was discovered.
+.IP "Sequence (%s... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (%s... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A lookahead assertion \f(CW\*(C`(?=...)\*(C'\fR or \f(CW\*(C`(?!...)\*(C'\fR or lookbehind
+assertion \f(CW\*(C`(?<=...)\*(C'\fR or \f(CW\*(C`(?<!...)\*(C'\fR was missing the final
+closing parenthesis. The <\-\-\ HERE shows whereabouts in the
+regular expression the problem was discovered.
+.IP "Sequence (?(%c... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?(%c... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named reference of the form \f(CW\*(C`(?(\*(Aq...\*(Aq)...)\*(C'\fR or \f(CW\*(C`(?(<...>)...)\*(C'\fR was
+missing the final closing quote or angle bracket after the name. The
+<\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Sequence (?... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) There was no matching closing parenthesis for the '('. The
+<\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered.
+.IP "Sequence \e%s... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence %s... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) The regular expression expects a mandatory argument following the escape
+sequence and this has been omitted or incorrectly written.
+.IP "Sequence (?{...}) not terminated with ')'" 4
+.IX Item "Sequence (?{...}) not terminated with ')'"
+(F) The end of the perl code contained within the {...} must be
+followed immediately by a ')'.
+.IP "Sequence (?P>... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?P>... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named reference of the form \f(CW\*(C`(?P>...)\*(C'\fR was missing the final
+closing parenthesis after the name. The <\-\-\ HERE shows whereabouts
+in the regular expression the problem was discovered.
+.IP "Sequence (?P<... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence (?P<... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named group of the form \f(CW\*(C`(?P<...>\*(Aq)\*(C'\fR was missing the final
+closing angle bracket. The <\-\-\ HERE shows whereabouts in the
+regular expression the problem was discovered.
+.IP "Sequence ?P=... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Sequence ?P=... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) A named reference of the form \f(CW\*(C`(?P=...)\*(C'\fR was missing the final
+closing parenthesis after the name. The <\-\-\ HERE shows whereabouts
+in the regular expression the problem was discovered.
+.IP "Sequence (?R) not terminated in regex m/%s/" 4
+.IX Item "Sequence (?R) not terminated in regex m/%s/"
+(F) An \f(CW\*(C`(?R)\*(C'\fR or \f(CW\*(C`(?0)\*(C'\fR sequence in a regular expression was missing the
+final parenthesis.
+.IP "500 Server error" 4
+.IX Item "500 Server error"
+(A) This is the error message generally seen in a browser window
+when trying to run a CGI program (including SSI) over the web. The
+actual error text varies widely from server to server. The most
+frequently-seen variants are "500 Server error", "Method (something)
+not permitted", "Document contains no data", "Premature end of script
+headers", and "Did not produce a valid header".
+.Sp
+\&\fBThis is a CGI error, not a Perl error\fR.
+.Sp
+You need to make sure your script is executable, is accessible by
+the user CGI is running the script under (which is probably not the
+user account you tested it under), does not rely on any environment
+variables (like PATH) from the user it isn't running under, and isn't
+in a location where the CGI server can't find it, basically, more or
+less. Please see the following for more information:
+.Sp
+.Vb 3
+\& https://www.perl.org/CGI_MetaFAQ.html
+\& http://www.htmlhelp.org/faq/cgifaq.html
+\& http://www.w3.org/Security/Faq/
+.Ve
+.Sp
+You should also look at perlfaq9.
+.IP "\fBsetegid()\fR not implemented" 4
+.IX Item "setegid() not implemented"
+(F) You tried to assign to \f(CW$)\fR, and your operating system doesn't
+support the \fBsetegid()\fR system call (or equivalent), or at least Configure
+didn't think so.
+.IP "\fBseteuid()\fR not implemented" 4
+.IX Item "seteuid() not implemented"
+(F) You tried to assign to \f(CW$>\fR, and your operating system doesn't
+support the \fBseteuid()\fR system call (or equivalent), or at least Configure
+didn't think so.
+.IP "setpgrp can't take arguments" 4
+.IX Item "setpgrp can't take arguments"
+(F) Your system has the \fBsetpgrp()\fR from BSD 4.2, which takes no
+arguments, unlike POSIX \fBsetpgid()\fR, which takes a process ID and process
+group ID.
+.IP "\fBsetrgid()\fR not implemented" 4
+.IX Item "setrgid() not implemented"
+(F) You tried to assign to \f(CW$(\fR, and your operating system doesn't
+support the \fBsetrgid()\fR system call (or equivalent), or at least Configure
+didn't think so.
+.IP "\fBsetruid()\fR not implemented" 4
+.IX Item "setruid() not implemented"
+(F) You tried to assign to \f(CW$<\fR, and your operating system doesn't
+support the \fBsetruid()\fR system call (or equivalent), or at least Configure
+didn't think so.
+.ie n .IP "\fBsetsockopt()\fR on closed socket %s" 4
+.el .IP "\fBsetsockopt()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "setsockopt() on closed socket %s"
+(W closed) You tried to set a socket option on a closed socket. Did you
+forget to check the return value of your \fBsocket()\fR call? See
+"setsockopt" in perlfunc.
+.ie n .IP "Setting $/ to a reference to %s is forbidden" 4
+.el .IP "Setting $/ to a reference to \f(CW%s\fR is forbidden" 4
+.IX Item "Setting $/ to a reference to %s is forbidden"
+(F) You assigned a reference to a scalar to \f(CW$/\fR where the referenced item is
+not a positive integer. In older perls this \fBappeared\fR to work the same as
+setting it to \f(CW\*(C`undef\*(C'\fR but was in fact internally different, less efficient
+and with very bad luck could have resulted in your file being split by a
+stringified form of the reference.
+.Sp
+In Perl 5.20.0 this was changed so that it would be \fBexactly\fR the same as
+setting \f(CW$/\fR to undef, with the exception that this warning would be thrown.
+.Sp
+You are recommended to change your code to set \f(CW$/\fR to \f(CW\*(C`undef\*(C'\fR explicitly if
+you wish to slurp the file. As of Perl 5.28 assigning \f(CW$/\fR to a reference
+to an integer which isn't positive is a fatal error.
+.ie n .IP "Setting $/ to %s reference is forbidden" 4
+.el .IP "Setting $/ to \f(CW%s\fR reference is forbidden" 4
+.IX Item "Setting $/ to %s reference is forbidden"
+(F) You tried to assign a reference to a non integer to \f(CW$/\fR. In older
+Perls this would have behaved similarly to setting it to a reference to
+a positive integer, where the integer was the address of the reference.
+As of Perl 5.20.0 this is a fatal error, to allow future versions of Perl
+to use non-integer refs for more interesting purposes.
+.IP "shm%s not implemented" 4
+.IX Item "shm%s not implemented"
+(F) You don't have System V shared memory IPC on your system.
+.IP "!=~ should be !~" 4
+.IX Item "!=~ should be !~"
+(W syntax) The non-matching operator is !~, not !=~. !=~ will be
+interpreted as the != (numeric not equal) and ~ (1's complement)
+operators: probably not what you intended.
+.IP "/%s/ should probably be written as ""%s""" 4
+.IX Item "/%s/ should probably be written as ""%s"""
+(W syntax) You have used a pattern where Perl expected to find a string,
+as in the first argument to \f(CW\*(C`join\*(C'\fR. Perl will treat the true or false
+result of matching the pattern against \f(CW$_\fR as the string, which is
+probably not what you had in mind.
+.ie n .IP "\fBshutdown()\fR on closed socket %s" 4
+.el .IP "\fBshutdown()\fR on closed socket \f(CW%s\fR" 4
+.IX Item "shutdown() on closed socket %s"
+(W closed) You tried to do a shutdown on a closed socket. Seems a bit
+superfluous.
+.IP "SIG%s handler ""%s"" not defined" 4
+.IX Item "SIG%s handler ""%s"" not defined"
+(W signal) The signal handler named in \f(CW%SIG\fR doesn't, in fact, exist.
+Perhaps you put it into the wrong package?
+.ie n .IP "Slab leaked from cv %p" 4
+.el .IP "Slab leaked from cv \f(CW%p\fR" 4
+.IX Item "Slab leaked from cv %p"
+(S) If you see this message, then something is seriously wrong with the
+internal bookkeeping of op trees. An op tree needed to be freed after
+a compilation error, but could not be found, so it was leaked instead.
+.IP "sleep(%u) too large" 4
+.IX Item "sleep(%u) too large"
+(W overflow) You called \f(CW\*(C`sleep\*(C'\fR with a number that was larger than
+it can reliably handle and \f(CW\*(C`sleep\*(C'\fR probably slept for less time than
+requested.
+.IP "Slurpy parameter not last" 4
+.IX Item "Slurpy parameter not last"
+(F) In a subroutine signature, you put something after a slurpy (array or
+hash) parameter. The slurpy parameter takes all the available arguments,
+so there can't be any left to fill later parameters.
+.IP "Smart matching a non-overloaded object breaks encapsulation" 4
+.IX Item "Smart matching a non-overloaded object breaks encapsulation"
+(F) You should not use the \f(CW\*(C`~~\*(C'\fR operator on an object that does not
+overload it: Perl refuses to use the object's underlying structure
+for the smart match.
+.IP "Smartmatch is deprecated" 4
+.IX Item "Smartmatch is deprecated"
+(D deprecated::smartmatch) This warning is emitted if you
+use the smartmatch (\f(CW\*(C`~~\*(C'\fR) operator. This is a deprecated
+feature. Particularly, its behavior is noticed for being
+unnecessarily complex and unintuitive, and it will be removed
+in Perl 5.42.
+.IP "Sorry, hash keys must be smaller than 2**31 bytes" 4
+.IX Item "Sorry, hash keys must be smaller than 2**31 bytes"
+(F) You tried to create a hash containing a very large key, where "very
+large" means that it needs at least 2 gigabytes to store. Unfortunately,
+Perl doesn't yet handle such large hash keys. You should
+reconsider your design to avoid hashing such a long string directly.
+.IP "sort is now a reserved word" 4
+.IX Item "sort is now a reserved word"
+(F) An ancient error message that almost nobody ever runs into anymore.
+But before sort was a keyword, people sometimes used it as a filehandle.
+.IP "Source filters apply only to byte streams" 4
+.IX Item "Source filters apply only to byte streams"
+(F) You tried to activate a source filter (usually by loading a
+source filter module) within a string passed to \f(CW\*(C`eval\*(C'\fR. This is
+not permitted under the \f(CW\*(C`unicode_eval\*(C'\fR feature. Consider using
+\&\f(CW\*(C`evalbytes\*(C'\fR instead. See feature.
+.IP "\fBsplice()\fR offset past end of array" 4
+.IX Item "splice() offset past end of array"
+(W misc) You attempted to specify an offset that was past the end of
+the array passed to \fBsplice()\fR. Splicing will instead commence at the
+end of the array, rather than past it. If this isn't what you want,
+try explicitly pre-extending the array by assigning $#array = \f(CW$offset\fR.
+See "splice" in perlfunc.
+.IP "Split loop" 4
+.IX Item "Split loop"
+(P) The split was looping infinitely. (Obviously, a split shouldn't
+iterate more times than there are characters of input, which is what
+happened.) See "split" in perlfunc.
+.IP "Statement unlikely to be reached" 4
+.IX Item "Statement unlikely to be reached"
+(W exec) You did an \fBexec()\fR with some statement after it other than a
+\&\fBdie()\fR. This is almost always an error, because \fBexec()\fR never returns
+unless there was a failure. You probably wanted to use \fBsystem()\fR
+instead, which does return. To suppress this warning, put the \fBexec()\fR in
+a block by itself.
+.ie n .IP """state"" subroutine %s can't be in a package" 4
+.el .IP """state"" subroutine \f(CW%s\fR can't be in a package" 4
+.IX Item """state"" subroutine %s can't be in a package"
+(F) Lexically scoped subroutines aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front.
+.ie n .IP """state %s"" used in sort comparison" 4
+.el .IP """state \f(CW%s\fR"" used in sort comparison" 4
+.IX Item """state %s"" used in sort comparison"
+(W syntax) The package variables \f(CW$a\fR and \f(CW$b\fR are used for sort comparisons.
+You used \f(CW$a\fR or \f(CW$b\fR in as an operand to the \f(CW\*(C`<=>\*(C'\fR or \f(CW\*(C`cmp\*(C'\fR operator inside a
+sort comparison block, 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.
+.ie n .IP """state"" variable %s can't be in a package" 4
+.el .IP """state"" variable \f(CW%s\fR can't be in a package" 4
+.IX Item """state"" variable %s can't be in a package"
+(F) Lexically scoped variables aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front. Use
+\&\fBlocal()\fR if you want to localize a package variable.
+.ie n .IP "\fBstat()\fR on unopened filehandle %s" 4
+.el .IP "\fBstat()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "stat() on unopened filehandle %s"
+(W unopened) You tried to use the \fBstat()\fR function on a filehandle that
+was either never opened or has since been closed.
+.IP "Strings with code points over 0xFF may not be mapped into in-memory file handles" 4
+.IX Item "Strings with code points over 0xFF may not be mapped into in-memory file handles"
+(W utf8) You tried to open a reference to a scalar for read or append
+where the scalar contained code points over 0xFF. In-memory files
+model on-disk files and can only contain bytes.
+.IP "Stub found while resolving method ""%s"" overloading ""%s"" in package ""%s""" 4
+.IX Item "Stub found while resolving method ""%s"" overloading ""%s"" in package ""%s"""
+(P) Overloading resolution over \f(CW@ISA\fR tree may be broken by importation
+stubs. Stubs should never be implicitly created, but explicit calls to
+\&\f(CW\*(C`can\*(C'\fR may break this.
+.IP "Subroutine attributes must come before the signature" 4
+.IX Item "Subroutine attributes must come before the signature"
+(F) When subroutine signatures are enabled, any subroutine attributes must
+come before the signature. Note that this order was the opposite in
+versions 5.22..5.26. So:
+.Sp
+.Vb 2
+\& sub foo :lvalue ($a, $b) { ... } # 5.20 and 5.28 +
+\& sub foo ($a, $b) :lvalue { ... } # 5.22 .. 5.26
+.Ve
+.IP "Subroutine ""&%s"" is not available" 4
+.IX Item "Subroutine ""&%s"" is not available"
+(W closure) During compilation, an inner named subroutine or eval is
+attempting to capture an outer lexical subroutine that is not currently
+available. This can happen for one of two reasons. First, the lexical
+subroutine may be declared in an outer anonymous subroutine that has
+not yet been created. (Remember that named subs are created at compile
+time, while anonymous subs are created at run-time.) For example,
+.Sp
+.Vb 1
+\& sub { my sub a {...} sub f { \e&a } }
+.Ve
+.Sp
+At the time that f is created, it can't capture the current "a" sub,
+since the anonymous subroutine hasn't been created yet. Conversely, the
+following won't give a warning since the anonymous subroutine has by now
+been created and is live:
+.Sp
+.Vb 1
+\& sub { my sub a {...} eval \*(Aqsub f { \e&a }\*(Aq }\->();
+.Ve
+.Sp
+The second situation is caused by an eval accessing a lexical subroutine
+that has gone out of scope, for example,
+.Sp
+.Vb 5
+\& sub f {
+\& my sub a {...}
+\& sub { eval \*(Aq\e&a\*(Aq }
+\& }
+\& f()\->();
+.Ve
+.Sp
+Here, when the '\e&a' in the eval is being compiled, f() is not currently
+being executed, so its &a is not available for capture.
+.ie n .IP """%s"" subroutine &%s masks earlier declaration in same %s" 4
+.el .IP """%s"" subroutine &%s masks earlier declaration in same \f(CW%s\fR" 4
+.IX Item """%s"" subroutine &%s masks earlier declaration in same %s"
+(W shadow) A "my" or "state" subroutine has been redeclared in the
+current scope or statement, effectively eliminating all access to
+the previous instance. This is almost always a typographical error.
+Note that the earlier subroutine will still exist until the end of
+the scope or until all closure references to it are destroyed.
+.ie n .IP "Subroutine %s redefined" 4
+.el .IP "Subroutine \f(CW%s\fR redefined" 4
+.IX Item "Subroutine %s redefined"
+(W redefine) You redefined a subroutine. To suppress this warning, say
+.Sp
+.Vb 4
+\& {
+\& no warnings \*(Aqredefine\*(Aq;
+\& eval "sub name { ... }";
+\& }
+.Ve
+.IP "Subroutine ""%s"" will not stay shared" 4
+.IX Item "Subroutine ""%s"" will not stay shared"
+(W closure) An inner (nested) \fInamed\fR subroutine is referencing a "my"
+subroutine defined in an outer named subroutine.
+.Sp
+When the inner subroutine is called, it will see the value of the outer
+subroutine's lexical subroutine as it was before and during the *first*
+call to the outer subroutine; in this case, after the first call to the
+outer subroutine is complete, the inner and outer subroutines will no
+longer share a common value for the lexical subroutine. In other words,
+it will no longer be shared. This will especially make a difference
+if the lexical subroutines accesses lexical variables declared in its
+surrounding scope.
+.Sp
+This problem can usually be solved by making the inner subroutine
+anonymous, using the \f(CW\*(C`sub {}\*(C'\fR syntax. When inner anonymous subs that
+reference lexical subroutines in outer subroutines are created, they
+are automatically rebound to the current values of such lexical subs.
+.IP "Substitution loop" 4
+.IX Item "Substitution loop"
+(P) The substitution was looping infinitely. (Obviously, a substitution
+shouldn't iterate more times than there are characters of input, which
+is what happened.) See the discussion of substitution in
+"Regexp Quote-Like Operators" in perlop.
+.IP "Substitution pattern not terminated" 4
+.IX Item "Substitution pattern not terminated"
+(F) The lexer couldn't find the interior delimiter of an s/// or s{}{}
+construct. Remember that bracketing delimiters count nesting level.
+Missing the leading \f(CW\*(C`$\*(C'\fR from variable \f(CW$s\fR may cause this error.
+.IP "Substitution replacement not terminated" 4
+.IX Item "Substitution replacement not terminated"
+(F) The lexer couldn't find the final delimiter of an s/// or s{}{}
+construct. Remember that bracketing delimiters count nesting level.
+Missing the leading \f(CW\*(C`$\*(C'\fR from variable \f(CW$s\fR may cause this error.
+.IP "substr outside of string" 4
+.IX Item "substr outside of string"
+(W substr)(F) You tried to reference a \fBsubstr()\fR that pointed outside of
+a string. That is, the absolute value of the offset was larger than the
+length of the string. See "substr" in perlfunc. This warning is fatal if
+substr is used in an lvalue context (as the left hand side of an
+assignment or as a subroutine argument for example).
+.ie n .IP "sv_upgrade from type %d down to type %d" 4
+.el .IP "sv_upgrade from type \f(CW%d\fR down to type \f(CW%d\fR" 4
+.IX Item "sv_upgrade from type %d down to type %d"
+(P) Perl tried to force the upgrade of an SV to a type which was actually
+inferior to its current type.
+.IP "Switch (?(condition)... contains too many branches in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Switch (?(condition)... contains too many branches in regex; marked by <--\ HERE in m/%s/"
+(F) A (?(condition)if\-clause|else\-clause) construct can have at most
+two branches (the if-clause and the else-clause). If you want one or
+both to contain alternation, such as using \f(CW\*(C`this|that|other\*(C'\fR, enclose
+it in clustering parentheses:
+.Sp
+.Vb 1
+\& (?(condition)(?:this|that|other)|else\-clause)
+.Ve
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem
+was discovered. See perlre.
+.IP "Switch condition not recognized in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Switch condition not recognized in regex; marked by <--\ HERE in m/%s/"
+(F) The condition part of a (?(condition)if\-clause|else\-clause) construct
+is not known. The condition must be one of the following:
+.Sp
+.Vb 9
+\& (1) (2) ... true if 1st, 2nd, etc., capture matched
+\& (<NAME>) (\*(AqNAME\*(Aq) true if named capture matched
+\& (?=...) (?<=...) true if subpattern matches
+\& (?!...) (?<!...) true if subpattern fails to match
+\& (?{ CODE }) true if code returns a true value
+\& (R) true if evaluating inside recursion
+\& (R1) (R2) ... true if directly inside capture group 1, 2, etc.
+\& (R&NAME) true if directly inside named capture
+\& (DEFINE) always false; for defining named subpatterns
+.Ve
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. See perlre.
+.IP "Switch (?(condition)... not terminated in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Switch (?(condition)... not terminated in regex; marked by <--\ HERE in m/%s/"
+(F) You omitted to close a (?(condition)...) block somewhere
+in the pattern. Add a closing parenthesis in the appropriate
+position. See perlre.
+.ie n .IP "switching effective %s is not implemented" 4
+.el .IP "switching effective \f(CW%s\fR is not implemented" 4
+.IX Item "switching effective %s is not implemented"
+(F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, we cannot switch the real
+and effective uids or gids.
+.IP "syntax error" 4
+.IX Item "syntax error"
+(F) Probably means you had a syntax error. Common reasons include:
+.Sp
+.Vb 6
+\& A keyword is misspelled.
+\& A semicolon is missing.
+\& A comma is missing.
+\& An opening or closing parenthesis is missing.
+\& An opening or closing brace is missing.
+\& A closing quote is missing.
+.Ve
+.Sp
+Often there will be another error message associated with the syntax
+error giving more information. (Sometimes it helps to turn on \fB\-w\fR.)
+The error message itself often tells you where it was in the line when
+it decided to give up. Sometimes the actual error is several tokens
+before this, because Perl is good at understanding random input.
+Occasionally the line number may be misleading, and once in a blue moon
+the only way to figure out what's triggering the error is to call
+\&\f(CW\*(C`perl \-c\*(C'\fR repeatedly, chopping away half the program each time to see
+if the error went away. Sort of the cybernetic version of 20\ questions.
+.ie n .IP "syntax error at line %d: '%s' unexpected" 4
+.el .IP "syntax error at line \f(CW%d:\fR '%s' unexpected" 4
+.IX 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 into Perl
+yourself.
+.ie n .IP "syntax error in file %s at line %d, next 2 tokens ""%s""" 4
+.el .IP "syntax error in file \f(CW%s\fR at line \f(CW%d\fR, next 2 tokens ""%s""" 4
+.IX Item "syntax error in file %s at line %d, next 2 tokens ""%s"""
+(F) This error is likely to occur if you run a perl5 script through
+a perl4 interpreter, especially if the next 2 tokens are "use strict"
+or "my \f(CW$var\fR" or "our \f(CW$var\fR".
+.IP "Syntax error in (?[...]) in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Syntax error in (?[...]) in regex; marked by <-- HERE in m/%s/"
+(F) Perl could not figure out what you meant inside this construct; this
+notifies you that it is giving up trying.
+.ie n .IP "%s syntax OK" 4
+.el .IP "\f(CW%s\fR syntax OK" 4
+.IX Item "%s syntax OK"
+(F) The final summary message when a \f(CW\*(C`perl \-c\*(C'\fR succeeds.
+.ie n .IP "\fBsysread()\fR on closed filehandle %s" 4
+.el .IP "\fBsysread()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "sysread() on closed filehandle %s"
+(W closed) You tried to read from a closed filehandle.
+.ie n .IP "\fBsysread()\fR on unopened filehandle %s" 4
+.el .IP "\fBsysread()\fR on unopened filehandle \f(CW%s\fR" 4
+.IX Item "sysread() on unopened filehandle %s"
+(W unopened) You tried to read from a filehandle that was never opened.
+.ie n .IP "System V %s is not implemented on this machine" 4
+.el .IP "System V \f(CW%s\fR is not implemented on this machine" 4
+.IX Item "System V %s is not implemented on this machine"
+(F) You tried to do something with a function beginning with "sem",
+"shm", or "msg" but that System V IPC is not implemented in your
+machine. In some machines the functionality can exist but be
+unconfigured. Consult your system support.
+.ie n .IP "\fBsyswrite()\fR on closed filehandle %s" 4
+.el .IP "\fBsyswrite()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "syswrite() on closed filehandle %s"
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your control flow.
+.ie n .IP """\-T"" and ""\-B"" not implemented on filehandles" 4
+.el .IP "\f(CW\-T\fR and \f(CW\-B\fR not implemented on filehandles" 4
+.IX Item "-T and -B not implemented on filehandles"
+(F) Perl can't peek at the stdio buffer of filehandles when it doesn't
+know about your kind of stdio. You'll have to use a filename instead.
+.IP "Target of goto is too deeply nested" 4
+.IX Item "Target of goto is too deeply nested"
+(F) You tried to use \f(CW\*(C`goto\*(C'\fR to reach a label that was too deeply nested
+for Perl to reach. Perl is doing you a favor by refusing.
+.ie n .IP "\fBtelldir()\fR attempted on invalid dirhandle %s" 4
+.el .IP "\fBtelldir()\fR attempted on invalid dirhandle \f(CW%s\fR" 4
+.IX Item "telldir() attempted on invalid dirhandle %s"
+(W io) The dirhandle you tried to \fBtelldir()\fR is either closed or not really
+a dirhandle. Check your control flow.
+.IP "\fBtell()\fR on unopened filehandle" 4
+.IX Item "tell() on unopened filehandle"
+(W unopened) You tried to use the \fBtell()\fR function on a filehandle that
+was either never opened or has since been closed.
+.IP "The \fBcrypt()\fR function is unimplemented due to excessive paranoia." 4
+.IX Item "The crypt() function is unimplemented due to excessive paranoia."
+(F) Configure couldn't find the \fBcrypt()\fR function on your machine,
+probably because your vendor didn't supply it, probably because 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.
+.IP "The experimental declared_refs feature is not enabled" 4
+.IX Item "The experimental declared_refs feature is not enabled"
+(F) To declare references to variables, as in \f(CW\*(C`my \e%x\*(C'\fR, you must first enable
+the feature:
+.Sp
+.Vb 2
+\& no warnings "experimental::declared_refs";
+\& use feature "declared_refs";
+.Ve
+.ie n .IP "The %s function is unimplemented" 4
+.el .IP "The \f(CW%s\fR function is unimplemented" 4
+.IX Item "The %s function is unimplemented"
+(F) The function indicated isn't implemented on this architecture,
+according to the probings of Configure.
+.IP "The private_use feature is experimental" 4
+.IX Item "The private_use feature is experimental"
+(S experimental::private_use) This feature is actually a hook for future
+use.
+.ie n .IP "The stat preceding %s wasn't an lstat" 4
+.el .IP "The stat preceding \f(CW%s\fR wasn't an lstat" 4
+.IX Item "The stat preceding %s wasn't an lstat"
+(F) It makes no sense to test the current stat buffer for symbolic
+linkhood if the last stat that wrote to the stat buffer already went
+past the symlink to get to the real file. Use an actual filename
+instead.
+.IP "The Unicode property wildcards feature is experimental" 4
+.IX Item "The Unicode property wildcards feature is experimental"
+(S experimental::uniprop_wildcards) This feature is experimental
+and its behavior may in any future release of perl. See
+"Wildcards in Property Values" in perlunicode.
+.IP "The 'unique' attribute may only be applied to 'our' variables" 4
+.IX Item "The 'unique' attribute may only be applied to 'our' variables"
+(F) This attribute was never supported on \f(CW\*(C`my\*(C'\fR or \f(CW\*(C`sub\*(C'\fR declarations.
+.IP "This Perl can't reset CRTL environ elements (%s)" 4
+.IX Item "This Perl can't reset CRTL environ elements (%s)"
+.PD 0
+.IP "This Perl can't set CRTL environ elements (%s=%s)" 4
+.IX Item "This Perl can't set CRTL environ elements (%s=%s)"
+.PD
+(W internal) Warnings peculiar to VMS. You tried to change or delete an
+element of the CRTL's internal environ array, but your copy of Perl
+wasn't built with a CRTL that contained the \fBsetenv()\fR function. You'll
+need to rebuild Perl with a CRTL that does, or redefine
+\&\fIPERL_ENV_TABLES\fR (see perlvms) so that the environ array isn't the
+target of the change to
+\&\f(CW%ENV\fR which produced the warning.
+.IP "This Perl has not been built with support for randomized hash key traversal but something called \fBPerl_hv_rand_set()\fR." 4
+.IX Item "This Perl has not been built with support for randomized hash key traversal but something called Perl_hv_rand_set()."
+(F) Something has attempted to use an internal API call which
+depends on Perl being compiled with the default support for randomized hash
+key traversal, but this Perl has been compiled without it. You should
+report this warning to the relevant upstream party, or recompile perl
+with default options.
+.IP "This use of \fBmy()\fR in false conditional is no longer allowed" 4
+.IX Item "This use of my() in false conditional is no longer allowed"
+(F) You used a declaration similar to \f(CW\*(C`my $x if 0\*(C'\fR. There
+has been a long-standing bug in Perl that causes a lexical variable
+not to be cleared at scope exit when its declaration includes a false
+conditional. Some people have exploited this bug to achieve a kind of
+static variable. Since we intend to fix this bug, we don't want people
+relying on this behavior. You can achieve a similar static effect by
+declaring the variable in a separate block outside the function, eg
+.Sp
+.Vb 1
+\& sub f { my $x if 0; return $x++ }
+.Ve
+.Sp
+becomes
+.Sp
+.Vb 1
+\& { my $x; sub f { return $x++ } }
+.Ve
+.Sp
+Beginning with perl 5.10.0, you can also use \f(CW\*(C`state\*(C'\fR variables to have
+lexicals that are initialized only once (see feature):
+.Sp
+.Vb 1
+\& sub f { state $x; return $x++ }
+.Ve
+.Sp
+This use of \f(CWmy()\fR in a false conditional was deprecated beginning in
+Perl 5.10 and became a fatal error in Perl 5.30.
+.IP "Timeout waiting for another thread to define \ep{%s}" 4
+.IX Item "Timeout waiting for another thread to define p{%s}"
+(F) The first time a user-defined property
+("User-Defined Character Properties" in perlunicode) is used, its
+definition is looked up and converted into an internal form for more
+efficient handling in subsequent uses. There could be a race if two or
+more threads tried to do this processing nearly simultaneously.
+Instead, a critical section is created around this task, locking out all
+but one thread from doing it. This message indicates that the thread
+that is doing the conversion is taking an unexpectedly long time. The
+timeout exists solely to prevent deadlock; it's long enough that the
+system was likely thrashing and about to crash. There is no real remedy but
+rebooting.
+.IP "times not implemented" 4
+.IX Item "times not implemented"
+(F) Your version of the C library apparently doesn't do \fBtimes()\fR. I
+suspect you're not running on Unix.
+.IP """\-T"" is on the #! line, it must also be used on the command line" 4
+.IX Item """-T"" is on the #! line, it must also be used on the command line"
+(X) The #! line (or local equivalent) in a Perl script contains
+the \fB\-T\fR option (or the \fB\-t\fR option), but Perl was not invoked with
+\&\fB\-T\fR in its command line. This is an error because, by the time
+Perl discovers a \fB\-T\fR in a script, it's too late to properly taint
+everything from the environment. So Perl gives up.
+.Sp
+If the Perl script is being executed as a command using the #!
+mechanism (or its local equivalent), this error can usually be
+fixed by editing the #! line so that the \fB\-%c\fR option is a part of
+Perl's first argument: e.g. change \f(CW\*(C`perl \-n \-%c\*(C'\fR to \f(CW\*(C`perl \-%c \-n\*(C'\fR.
+.Sp
+If the Perl script is being executed as \f(CW\*(C`perl scriptname\*(C'\fR, then the
+\&\fB\-%c\fR option must appear on the command line: \f(CW\*(C`perl \-%c scriptname\*(C'\fR.
+.IP "To%s: illegal mapping '%s'" 4
+.IX Item "To%s: illegal mapping '%s'"
+(F) You tried to define a customized To-mapping for \fBlc()\fR, lcfirst,
+\&\fBuc()\fR, or \fBucfirst()\fR (or their string-inlined versions), but you
+specified an illegal mapping.
+See "User-Defined Character Properties" in perlunicode.
+.IP "Too deeply nested ()\-groups" 4
+.IX Item "Too deeply nested ()-groups"
+(F) Your template contains ()\-groups with a ridiculously deep nesting level.
+.IP "Too few args to syscall" 4
+.IX Item "Too few args to syscall"
+(F) There has to be at least one argument to \fBsyscall()\fR to specify the
+system call to call, silly dilly.
+.ie n .IP "Too few arguments for subroutine '%s' (got %d; expected %d)" 4
+.el .IP "Too few arguments for subroutine '%s' (got \f(CW%d\fR; expected \f(CW%d\fR)" 4
+.IX Item "Too few arguments for subroutine '%s' (got %d; expected %d)"
+(F) A subroutine using a signature fewer arguments than required by the
+signature. The caller of the subroutine is presumably at fault.
+.Sp
+The message attempts to include the name of the called subroutine. If
+the subroutine has been aliased, the subroutine's original name will be
+shown, regardless of what name the caller used. It will also indicate the
+number of arguments given and the number expected.
+.ie n .IP "Too few arguments for subroutine '%s' (got %d; expected at least %d)" 4
+.el .IP "Too few arguments for subroutine '%s' (got \f(CW%d\fR; expected at least \f(CW%d\fR)" 4
+.IX Item "Too few arguments for subroutine '%s' (got %d; expected at least %d)"
+Similar to the previous message but for subroutines that accept a variable
+number of arguments.
+.IP "Too late for ""\-%s"" option" 4
+.IX Item "Too late for ""-%s"" option"
+(X) The #! line (or local equivalent) in a Perl script contains the
+\&\fB\-M\fR, \fB\-m\fR or \fB\-C\fR option.
+.Sp
+In the case of \fB\-M\fR and \fB\-m\fR, this is an error because those options
+are not intended for use inside scripts. Use the \f(CW\*(C`use\*(C'\fR pragma instead.
+.Sp
+The \fB\-C\fR option only works if it is specified on the command line as
+well (with the same sequence of letters or numbers following). Either
+specify this option on the command line, or, if your system supports
+it, make your script executable and run it directly instead of passing
+it to perl.
+.ie n .IP "Too late to run %s block" 4
+.el .IP "Too late to run \f(CW%s\fR block" 4
+.IX Item "Too late to run %s block"
+(W void) A CHECK or INIT block is being defined during run time proper,
+when the opportunity to run them has already passed. Perhaps you are
+loading a file with \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR when you should be using \f(CW\*(C`use\*(C'\fR
+instead. Or perhaps you should put the \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR inside a
+BEGIN block.
+.IP "Too many args to syscall" 4
+.IX Item "Too many args to syscall"
+(F) Perl supports a maximum of only 14 args to \fBsyscall()\fR.
+.ie n .IP "Too many arguments for %s" 4
+.el .IP "Too many arguments for \f(CW%s\fR" 4
+.IX Item "Too many arguments for %s"
+(F) The function requires fewer arguments than you specified.
+.ie n .IP "Too many arguments for subroutine '%s' (got %d; expected %d)" 4
+.el .IP "Too many arguments for subroutine '%s' (got \f(CW%d\fR; expected \f(CW%d\fR)" 4
+.IX Item "Too many arguments for subroutine '%s' (got %d; expected %d)"
+(F) A subroutine using a signature received more arguments than permitted
+by the signature. The caller of the subroutine is presumably at fault.
+.Sp
+The message attempts to include the name of the called subroutine. If the
+subroutine has been aliased, the subroutine's original name will be shown,
+regardless of what name the caller used. It will also indicate the number
+of arguments given and the number expected.
+.ie n .IP "Too many arguments for subroutine '%s' (got %d; expected at most %d)" 4
+.el .IP "Too many arguments for subroutine '%s' (got \f(CW%d\fR; expected at most \f(CW%d\fR)" 4
+.IX Item "Too many arguments for subroutine '%s' (got %d; expected at most %d)"
+Similar to the previous message but for subroutines that accept a variable
+number of arguments.
+.IP "Too many nested open parens in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Too many nested open parens in regex; marked by <-- HERE in m/%s/"
+(F) You have exceeded the number of open \f(CW"("\fR parentheses that haven't
+been matched by corresponding closing ones. This limit prevents eating
+up too much memory. It is initially set to 1000, but may be changed by
+setting \f(CW\*(C`${^RE_COMPILE_RECURSION_LIMIT}\*(C'\fR to some other value. This may
+need to be done in a BEGIN block before the regular expression pattern
+is compiled.
+.ie n .IP "Too many nested BEGIN blocks, maximum of %d allowed" 4
+.el .IP "Too many nested BEGIN blocks, maximum of \f(CW%d\fR allowed" 4
+.IX Item "Too many nested BEGIN blocks, maximum of %d allowed"
+(F) You have executed code that nests too many BEGIN blocks inside of
+each other, either explicitly as BEGIN{} or implicitly as use statements.
+This limit defaults to a rather high number which should not be exceeded
+in normal circumstances, and triggering likely indicates something is
+very wrong in your code. For instance infinite recursion of eval and
+BEGIN blocks is known to trigger this error.
+.Sp
+If you know that you have good reason to exceed the limit you can change
+it by setting \f(CW\*(C`${^MAX_NESTED_EVAL_BEGIN_BLOCKS}\*(C'\fR to a different value from
+the default of 1000.
+.ie n .IP "Too many capture groups (limit is %d) in regex m/%s/" 4
+.el .IP "Too many capture groups (limit is \f(CW%d\fR) in regex m/%s/" 4
+.IX Item "Too many capture groups (limit is %d) in regex m/%s/"
+(F) You have too many capture groups in your regex pattern. You need to rework
+your pattern to use less capture groups.
+.IP "Too many )'s" 4
+.IX Item "Too many )'s"
+(A) You've accidentally run your script through \fBcsh\fR instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+.IP "Too many ('s" 4
+.IX Item "Too many ('s"
+(A) You've accidentally run your script through \fBcsh\fR instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+.IP "Trailing \e in regex m/%s/" 4
+.IX Item "Trailing in regex m/%s/"
+(F) The regular expression ends with an unbackslashed backslash.
+Backslash it. See perlre.
+.IP "Transliteration pattern not terminated" 4
+.IX Item "Transliteration pattern not terminated"
+(F) The lexer couldn't find the interior delimiter of a tr/// or tr[][]
+or y/// or y[][] construct. Missing the leading \f(CW\*(C`$\*(C'\fR from variables
+\&\f(CW$tr\fR or \f(CW$y\fR may cause this error.
+.IP "Transliteration replacement not terminated" 4
+.IX Item "Transliteration replacement not terminated"
+(F) The lexer couldn't find the final delimiter of a tr///, tr[][],
+y/// or y[][] construct.
+.ie n .IP "Treating %s::INIT block as BEGIN block as workaround" 4
+.el .IP "Treating \f(CW%s::INIT\fR block as BEGIN block as workaround" 4
+.IX Item "Treating %s::INIT block as BEGIN block as workaround"
+(S) A package is using an old version of \f(CW\*(C`Module::Install::DSL\*(C'\fR to
+install, which makes unsafe assumptions about when INIT blocks will be
+called. Because \f(CW\*(C`Module::Install::DSL\*(C'\fR is used to install other modules
+and is difficult to upgrade we have a special workaround in place to
+deal with this. Unless you are a maintainer of an affected module you
+can ignore this warning. We emit it only as a sanity check.
+.IP "'%s' trapped by operation mask" 4
+.IX Item "'%s' trapped by operation mask"
+(F) You tried to use an operator from a Safe compartment in which it's
+disallowed. See Safe.
+.IP "truncate not implemented" 4
+.IX Item "truncate not implemented"
+(F) Your machine doesn't implement a file truncation mechanism that
+Configure knows about.
+.IP "try/catch is experimental" 4
+.IX Item "try/catch is experimental"
+(S experimental::try) This warning is emitted if you use the \f(CW\*(C`try\*(C'\fR and
+\&\f(CW\*(C`catch\*(C'\fR syntax. This syntax is currently experimental and its behaviour may
+change in future releases of Perl.
+.IP "try/catch/finally is experimental" 4
+.IX Item "try/catch/finally is experimental"
+(S experimental::try) This warning is emitted if you use the \f(CW\*(C`try\*(C'\fR and
+\&\f(CW\*(C`catch\*(C'\fR syntax with a \f(CW\*(C`finally\*(C'\fR block. This syntax is currently experimental
+and its behaviour may change in future releases of Perl.
+.ie n .IP "Type of arg %d to &CORE::%s must be %s" 4
+.el .IP "Type of arg \f(CW%d\fR to &CORE::%s must be \f(CW%s\fR" 4
+.IX Item "Type of arg %d to &CORE::%s must be %s"
+(F) The subroutine in question in the CORE package requires its argument
+to be a hard reference to data of the specified type. Overloading is
+ignored, so a reference to an object that is not the specified type, but
+nonetheless has overloading to handle it, will still not be accepted.
+.ie n .IP "Type of arg %d to %s must be %s (not %s)" 4
+.el .IP "Type of arg \f(CW%d\fR to \f(CW%s\fR must be \f(CW%s\fR (not \f(CW%s\fR)" 4
+.IX 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 \f(CW@NAME\fR or \f(CW\*(C`@{EXPR}\*(C'\fR. Hashes must be
+\&\f(CW%NAME\fR or \f(CW\*(C`%{EXPR}\*(C'\fR. No implicit dereferencing is allowed\-\-use the
+{EXPR} forms as an explicit dereference. See perlref.
+.IP "umask not implemented" 4
+.IX Item "umask not implemented"
+(F) Your machine doesn't implement the umask function and you tried to
+use it to restrict permissions for yourself (EXPR & 0700).
+.ie n .IP "Unbalanced context: %d more PUSHes than POPs" 4
+.el .IP "Unbalanced context: \f(CW%d\fR more PUSHes than POPs" 4
+.IX Item "Unbalanced context: %d more PUSHes than POPs"
+(S internal) The exit code detected an internal inconsistency in how
+many execution contexts were entered and left.
+.ie n .IP "Unbalanced saves: %d more saves than restores" 4
+.el .IP "Unbalanced saves: \f(CW%d\fR more saves than restores" 4
+.IX Item "Unbalanced saves: %d more saves than restores"
+(S internal) The exit code detected an internal inconsistency in how
+many values were temporarily localized.
+.ie n .IP "Unbalanced scopes: %d more ENTERs than LEAVEs" 4
+.el .IP "Unbalanced scopes: \f(CW%d\fR more ENTERs than LEAVEs" 4
+.IX Item "Unbalanced scopes: %d more ENTERs than LEAVEs"
+(S internal) The exit code detected an internal inconsistency in how
+many blocks were entered and left.
+.IP "Unbalanced string table refcount: (%d) for ""%s""" 4
+.IX Item "Unbalanced string table refcount: (%d) for ""%s"""
+(S internal) On exit, Perl found some strings remaining in the shared
+string table used for copy on write and for hash keys. The entries
+should have been freed, so this indicates a bug somewhere.
+.ie n .IP "Unbalanced tmps: %d more allocs than frees" 4
+.el .IP "Unbalanced tmps: \f(CW%d\fR more allocs than frees" 4
+.IX Item "Unbalanced tmps: %d more allocs than frees"
+(S internal) The exit code detected an internal inconsistency in how
+many mortal scalars were allocated and freed.
+.IP "Undefined format ""%s"" called" 4
+.IX Item "Undefined format ""%s"" called"
+(F) The format indicated doesn't seem to exist. Perhaps it's really in
+another package? See perlform.
+.IP "Undefined sort subroutine ""%s"" called" 4
+.IX Item "Undefined sort subroutine ""%s"" called"
+(F) The sort comparison routine specified doesn't seem to exist.
+Perhaps it's in a different package? See "sort" in perlfunc.
+.IP "Undefined subroutine &%s called" 4
+.IX Item "Undefined subroutine &%s called"
+(F) The subroutine indicated hasn't been defined, or if it was, it has
+since been undefined.
+.IP "Undefined subroutine called" 4
+.IX Item "Undefined subroutine called"
+(F) The anonymous subroutine you're trying to call hasn't been defined,
+or if it was, it has since been undefined.
+.IP "Undefined subroutine in sort" 4
+.IX Item "Undefined subroutine in sort"
+(F) The sort comparison routine specified is declared but doesn't seem
+to have been defined yet. See "sort" in perlfunc.
+.IP "Undefined top format ""%s"" called" 4
+.IX Item "Undefined top format ""%s"" called"
+(F) The format indicated doesn't seem to exist. Perhaps it's really in
+another package? See perlform.
+.IP "Undefined value assigned to typeglob" 4
+.IX Item "Undefined value assigned to typeglob"
+(W misc) An undefined value was assigned to a typeglob, a la
+\&\f(CW\*(C`*foo = undef\*(C'\fR. This does nothing. It's possible that you really mean
+\&\f(CW\*(C`undef *foo\*(C'\fR.
+.ie n .IP "%s: Undefined variable" 4
+.el .IP "\f(CW%s:\fR Undefined variable" 4
+.IX Item "%s: Undefined variable"
+(A) You've accidentally run your script through \fBcsh\fR instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+.IP "Unescaped left brace in regex is illegal here in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unescaped left brace in regex is illegal here in regex; marked by <--\ HERE in m/%s/"
+(F) The simple rule to remember, if you want to
+match a literal \f(CW"{"\fR character (U+007B \f(CW\*(C`LEFT CURLY BRACKET\*(C'\fR) in a
+regular expression pattern, is to escape each literal instance of it in
+some way. Generally easiest is to precede it with a backslash, like
+\&\f(CW"\e{"\fR or enclose it in square brackets (\f(CW"[{]"\fR). If the pattern
+delimiters are also braces, any matching right brace (\f(CW"}"\fR) should
+also be escaped to avoid confusing the parser, for example,
+.Sp
+.Vb 1
+\& qr{abc\e{def\e}ghi}
+.Ve
+.Sp
+Forcing literal \f(CW"{"\fR characters to be escaped enables the Perl
+language to be extended in various ways in future releases. To avoid
+needlessly breaking existing code, the restriction is not enforced in
+contexts where there are unlikely to ever be extensions that could
+conflict with the use there of \f(CW"{"\fR as a literal. Those that are
+not potentially ambiguous do not warn; those that are do raise a
+non-deprecation warning.
+.Sp
+The contexts where no warnings or errors are raised are:
+.RS 4
+.IP \(bu 4
+as the first character in a pattern, or following \f(CW"^"\fR indicating to
+anchor the match to the beginning of a line.
+.IP \(bu 4
+as the first character following a \f(CW"|"\fR indicating alternation.
+.IP \(bu 4
+as the first character in a parenthesized grouping like
+.Sp
+.Vb 2
+\& /foo({bar)/
+\& /foo(?:{bar)/
+.Ve
+.IP \(bu 4
+as the first character following a quantifier
+.Sp
+.Vb 1
+\& /\es*{/
+.Ve
+.RE
+.RS 4
+.RE
+.IP "Unescaped left brace in regex is passed through in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unescaped left brace in regex is passed through in regex; marked by <--\ HERE in m/%s/"
+(W regexp) The simple rule to remember, if you want to
+match a literal \f(CW"{"\fR character (U+007B \f(CW\*(C`LEFT CURLY BRACKET\*(C'\fR) in a
+regular expression pattern, is to escape each literal instance of it in
+some way. Generally easiest is to precede it with a backslash, like
+\&\f(CW"\e{"\fR or enclose it in square brackets (\f(CW"[{]"\fR). If the pattern
+delimiters are also braces, any matching right brace (\f(CW"}"\fR) should
+also be escaped to avoid confusing the parser, for example,
+.Sp
+.Vb 1
+\& qr{abc\e{def\e}ghi}
+.Ve
+.Sp
+Forcing literal \f(CW"{"\fR characters to be escaped enables the Perl
+language to be extended in various ways in future releases. To avoid
+needlessly breaking existing code, the restriction is not enforced in
+contexts where there are unlikely to ever be extensions that could
+conflict with the use there of \f(CW"{"\fR as a literal. Those that are
+not potentially ambiguous do not warn; those that are raise this
+warning. This makes sure that an inadvertent typo doesn't silently
+cause the pattern to compile to something unintended.
+.Sp
+The contexts where no warnings or errors are raised are:
+.RS 4
+.IP \(bu 4
+as the first character in a pattern, or following \f(CW"^"\fR indicating to
+anchor the match to the beginning of a line.
+.IP \(bu 4
+as the first character following a \f(CW"|"\fR indicating alternation.
+.IP \(bu 4
+as the first character in a parenthesized grouping like
+.Sp
+.Vb 2
+\& /foo({bar)/
+\& /foo(?:{bar)/
+.Ve
+.IP \(bu 4
+as the first character following a quantifier
+.Sp
+.Vb 1
+\& /\es*{/
+.Ve
+.RE
+.RS 4
+.RE
+.IP "Unescaped literal '%c' in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unescaped literal '%c' in regex; marked by <-- HERE in m/%s/"
+(W regexp) (only under \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR)
+.Sp
+Within the scope of \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR in a regular expression
+pattern, you included an unescaped \f(CW\*(C`}\*(C'\fR or \f(CW\*(C`]\*(C'\fR which was interpreted
+literally. These two characters are sometimes metacharacters, and
+sometimes literals, depending on what precedes them in the
+pattern. This is unlike the similar \f(CW\*(C`)\*(C'\fR which is always a
+metacharacter unless escaped.
+.Sp
+This action at a distance, perhaps a large distance, can lead to Perl
+silently misinterpreting what you meant, so when you specify that you
+want extra checking by \f(CW\*(C`use\ re\ \*(Aqstrict\*(Aq\*(C'\fR, this warning is generated.
+If you meant the character as a literal, simply confirm that to Perl by
+preceding the character with a backslash, or make it into a bracketed
+character class (like \f(CW\*(C`[}]\*(C'\fR). If you meant it as closing a
+corresponding \f(CW\*(C`[\*(C'\fR or \f(CW\*(C`{\*(C'\fR, you'll need to look back through the pattern
+to find out why that isn't happening.
+.ie n .IP "unexec of %s into %s failed!" 4
+.el .IP "unexec of \f(CW%s\fR into \f(CW%s\fR failed!" 4
+.IX Item "unexec of %s into %s failed!"
+(F) The \fBunexec()\fR routine failed for some reason. See your local FSF
+representative, who probably put it there in the first place.
+.IP "Unexpected binary operator '%c' with no preceding operand in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unexpected binary operator '%c' with no preceding operand in regex; marked by <--\ HERE in m/%s/"
+(F) You had something like this:
+.Sp
+.Vb 1
+\& (?[ | \ep{Digit} ])
+.Ve
+.Sp
+where the \f(CW"|"\fR is a binary operator with an operand on the right, but
+no operand on the left.
+.IP "Unexpected character in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unexpected character in regex; marked by <--\ HERE in m/%s/"
+(F) You had something like this:
+.Sp
+.Vb 1
+\& (?[ z ])
+.Ve
+.Sp
+Within \f(CW\*(C`(?[ ])\*(C'\fR, no literal characters are allowed unless they are
+within an inner pair of square brackets, like
+.Sp
+.Vb 1
+\& (?[ [ z ] ])
+.Ve
+.Sp
+Another possibility is that you forgot a backslash. Perl isn't smart
+enough to figure out what you really meant.
+.ie n .IP "Unexpected characters while parsing class :isa attribute: %s" 4
+.el .IP "Unexpected characters while parsing class :isa attribute: \f(CW%s\fR" 4
+.IX Item "Unexpected characters while parsing class :isa attribute: %s"
+(F) You tried to specify something other than a single class name with an
+optional trailing verison number as the value for a \f(CW\*(C`class\*(C'\fR \f(CW\*(C`:isa\*(C'\fR
+attribute. This confused the parser.
+.ie n .IP "Unexpected exit %u" 4
+.el .IP "Unexpected exit \f(CW%u\fR" 4
+.IX Item "Unexpected exit %u"
+(S) \fBexit()\fR was called or the script otherwise finished gracefully when
+\&\f(CW\*(C`PERL_EXIT_WARN\*(C'\fR was set in \f(CW\*(C`PL_exit_flags\*(C'\fR.
+.ie n .IP "Unexpected exit failure %d" 4
+.el .IP "Unexpected exit failure \f(CW%d\fR" 4
+.IX Item "Unexpected exit failure %d"
+(S) An uncaught \fBdie()\fR was called when \f(CW\*(C`PERL_EXIT_WARN\*(C'\fR was set in
+\&\f(CW\*(C`PL_exit_flags\*(C'\fR.
+.IP "Unexpected ')' in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unexpected ')' in regex; marked by <--\ HERE in m/%s/"
+(F) You had something like this:
+.Sp
+.Vb 1
+\& (?[ ( \ep{Digit} + ) ])
+.Ve
+.Sp
+The \f(CW")"\fR is out-of-place. Something apparently was supposed to
+be combined with the digits, or the \f(CW"+"\fR shouldn't be there, or
+something like that. Perl can't figure out what was intended.
+.IP "Unexpected ']' with no following ')' in (?[... in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/%s/"
+(F) While parsing an extended character class a ']' character was
+encountered at a point in the definition where the only legal use of
+\&']' is to close the character class definition as part of a '])', you
+may have forgotten the close paren, or otherwise confused the parser.
+.IP "Unexpected '(' with no preceding operator in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unexpected '(' with no preceding operator in regex; marked by <--\ HERE in m/%s/"
+(F) You had something like this:
+.Sp
+.Vb 1
+\& (?[ \ep{Digit} ( \ep{Lao} + \ep{Thai} ) ])
+.Ve
+.Sp
+There should be an operator before the \f(CW"("\fR, as there's
+no indication as to how the digits are to be combined
+with the characters in the Lao and Thai scripts.
+.IP "Unicode non-character U+%X is not recommended for open interchange" 4
+.IX Item "Unicode non-character U+%X is not recommended for open interchange"
+(S nonchar) Certain codepoints, such as U+FFFE and U+FFFF, are
+defined by the Unicode standard to be non-characters. Those
+are legal codepoints, but are reserved for internal use; so,
+applications shouldn't attempt to exchange them. An application
+may not be expecting any of these characters at all, and receiving
+them may lead to bugs. If you know what you are doing you can
+turn off this warning by \f(CW\*(C`no warnings \*(Aqnonchar\*(Aq;\*(C'\fR.
+.Sp
+This is not really a "severe" error, but it is supposed to be
+raised by default even if warnings are not enabled, and currently
+the only way to do that in Perl is to mark it as serious.
+.IP "Unicode property wildcard not terminated" 4
+.IX Item "Unicode property wildcard not terminated"
+(F) A Unicode property wildcard looks like a delimited regular
+expression pattern (all within the braces of the enclosing \f(CW\*(C`\ep{...}\*(C'\fR.
+The closing delimtter to match the opening one was not found. If the
+opening one is escaped by preceding it with a backslash, the closing one
+must also be so escaped.
+.IP "Unicode string properties are not implemented in (?[...]) in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unicode string properties are not implemented in (?[...]) in regex; marked by <-- HERE in m/%s/"
+(F) A Unicode string property is one which expands to a sequence of
+multiple characters. An example is \f(CW\*(C`\ep{name=KATAKANA LETTER AINU P}\*(C'\fR,
+which is comprised of the sequence \f(CW\*(C`\eN{KATAKANA LETTER SMALL H}\*(C'\fR
+followed by \f(CW\*(C`\eN{COMBINING KATAKANA\-HIRAGANA SEMI\-VOICED SOUND MARK}\*(C'\fR.
+Extended character classes, \f(CW\*(C`(?[...])\*(C'\fR currently cannot handle these.
+.IP "Unicode surrogate U+%X is illegal in UTF\-8" 4
+.IX Item "Unicode surrogate U+%X is illegal in UTF-8"
+(S surrogate) You had a UTF\-16 surrogate in a context where they are
+not considered acceptable. These code points, between U+D800 and
+U+DFFF (inclusive), are used by Unicode only for UTF\-16. However, Perl
+internally allows all unsigned integer code points (up to the size limit
+available on your platform), including surrogates. But these can cause
+problems when being input or output, which is likely where this message
+came from. If you really really know what you are doing you can turn
+off this warning by \f(CW\*(C`no warnings \*(Aqsurrogate\*(Aq;\*(C'\fR.
+.IP Unimplemented 4
+.IX Item "Unimplemented"
+(F) In Perl 5.12 and above, you have executed an
+ellipsis statement. This is a
+bare \f(CW\*(C`...;\*(C'\fR, meant to be used to allow you to outline code that
+is to be written, but is not complete, similar to the following:
+.Sp
+.Vb 4
+\& sub not_done_yet {
+\& my($self, $arg1, $arg2) = @_;
+\& ...
+\& }
+.Ve
+.Sp
+If \f(CWnot_done_yet()\fR is called, Perl will die with an \f(CW\*(C`Unimplemented\*(C'\fR error
+at the line containing \f(CW\*(C`...\*(C'\fR.
+.IP "Unknown charname '%s'" 4
+.IX Item "Unknown charname '%s'"
+(F) The name you used inside \f(CW\*(C`\eN{}\*(C'\fR is unknown to Perl. Check the
+spelling. You can say \f(CW\*(C`use charnames ":loose"\*(C'\fR to not have to be
+so precise about spaces, hyphens, and capitalization on standard Unicode
+names. (Any custom aliases that have been created must be specified
+exactly, regardless of whether \f(CW\*(C`:loose\*(C'\fR is used or not.) This error may
+also happen if the \f(CW\*(C`\eN{}\*(C'\fR is not in the scope of the corresponding
+\&\f(CW\*(C`use\ charnames\*(C'\fR.
+.IP "Unknown '(*...)' construct '%s' in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unknown '(*...)' construct '%s' in regex; marked by <-- HERE in m/%s/"
+(F) The \f(CW\*(C`(*\*(C'\fR was followed by something that the regular expression
+compiler does not recognize. Check your spelling.
+.IP "Unknown error" 4
+.IX Item "Unknown error"
+(P) Perl was about to print an error message in \f(CW$@\fR, but the \f(CW$@\fR variable
+did not exist, even after an attempt to create it.
+.ie n .IP "Unknown locale category %d" 4
+.el .IP "Unknown locale category \f(CW%d\fR" 4
+.IX Item "Unknown locale category %d"
+.PD 0
+.ie n .IP "Unknown locale category %d; can't set it to %s" 4
+.el .IP "Unknown locale category \f(CW%d\fR; can't set it to \f(CW%s\fR" 4
+.IX Item "Unknown locale category %d; can't set it to %s"
+.PD
+(W locale) You used a locale category that perl doesn't recognize, so it
+cannot carry out your request. Check that you are using a valid
+category. If so, see "Multi-threaded" in perllocale for advice on
+reporting this as a bug, and for modifying perl locally to accommodate
+your needs.
+.IP "Unknown \fBopen()\fR mode '%s'" 4
+.IX Item "Unknown open() mode '%s'"
+(F) The second argument of 3\-argument \fBopen()\fR is not among the list
+of valid modes: \f(CW\*(C`<\*(C'\fR, \f(CW\*(C`>\*(C'\fR, \f(CW\*(C`>>\*(C'\fR, \f(CW\*(C`+<\*(C'\fR,
+\&\f(CW\*(C`+>\*(C'\fR, \f(CW\*(C`+>>\*(C'\fR, \f(CW\*(C`\-|\*(C'\fR, \f(CW\*(C`|\-\*(C'\fR, \f(CW\*(C`<&\*(C'\fR, \f(CW\*(C`>&\*(C'\fR.
+.IP "Unknown PerlIO layer ""%s""" 4
+.IX Item "Unknown PerlIO layer ""%s"""
+(W layer) An attempt was made to push an unknown layer onto the Perl I/O
+system. (Layers take care of transforming data between external and
+internal representations.) Note that some layers, such as \f(CW\*(C`mmap\*(C'\fR,
+are not supported in all environments. If your program didn't
+explicitly request the failing operation, it may be the result of the
+value of the environment variable PERLIO.
+.ie n .IP "Unknown process %x sent message to prime_env_iter: %s" 4
+.el .IP "Unknown process \f(CW%x\fR sent message to prime_env_iter: \f(CW%s\fR" 4
+.IX Item "Unknown process %x sent message to prime_env_iter: %s"
+(P) An error peculiar to VMS. Perl was reading values for \f(CW%ENV\fR before
+iterating over it, and someone else stuck a message in the stream of
+data Perl expected. Someone's very confused, or perhaps trying to
+subvert Perl's population of \f(CW%ENV\fR for nefarious purposes.
+.IP "Unknown regexp modifier ""/%s""" 4
+.IX Item "Unknown regexp modifier ""/%s"""
+(F) Alphanumerics immediately following the closing delimiter
+of a regular expression pattern are interpreted by Perl as modifier
+flags for the regex. One of the ones you specified is invalid. One way
+this can happen is if you didn't put in white space between the end of
+the regex and a following alphanumeric operator:
+.Sp
+.Vb 1
+\& if ($a =~ /foo/and $bar == 3) { ... }
+.Ve
+.Sp
+The \f(CW"a"\fR is a valid modifier flag, but the \f(CW"n"\fR is not, and raises
+this error. Likely what was meant instead was:
+.Sp
+.Vb 1
+\& if ($a =~ /foo/ and $bar == 3) { ... }
+.Ve
+.ie n .IP "Unknown ""re"" subpragma '%s' (known ones are: %s)" 4
+.el .IP "Unknown ""re"" subpragma '%s' (known ones are: \f(CW%s\fR)" 4
+.IX Item "Unknown ""re"" subpragma '%s' (known ones are: %s)"
+(W) You tried to use an unknown subpragma of the "re" pragma.
+.IP "Unknown switch condition (?(...)) in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unknown switch condition (?(...)) in regex; marked by <--\ HERE in m/%s/"
+(F) The condition part of a (?(condition)if\-clause|else\-clause) construct
+is not known. The condition must be one of the following:
+.Sp
+.Vb 10
+\& (1) (2) ... true if 1st, 2nd, etc., capture matched
+\& (<NAME>) (\*(AqNAME\*(Aq) true if named capture matched
+\& (?=...) (?<=...) true if subpattern matches
+\& (*pla:...) (*plb:...) true if subpattern matches; also
+\& (*positive_lookahead:...)
+\& (*positive_lookbehind:...)
+\& (*nla:...) (*nlb:...) true if subpattern fails to match; also
+\& (*negative_lookahead:...)
+\& (*negative_lookbehind:...)
+\& (?{ CODE }) true if code returns a true value
+\& (R) true if evaluating inside recursion
+\& (R1) (R2) ... true if directly inside capture group 1, 2,
+\& etc.
+\& (R&NAME) true if directly inside named capture
+\& (DEFINE) always false; for defining named subpatterns
+.Ve
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. See perlre.
+.IP "Unknown Unicode option letter '%c'" 4
+.IX Item "Unknown Unicode option letter '%c'"
+(F) You specified an unknown Unicode option. See
+perlrun documentation of the \f(CW\*(C`\-C\*(C'\fR switch
+for the list of known options.
+.ie n .IP "Unknown Unicode option value %d" 4
+.el .IP "Unknown Unicode option value \f(CW%d\fR" 4
+.IX Item "Unknown Unicode option value %d"
+(F) You specified an unknown Unicode option. See
+perlrun documentation of the \f(CW\*(C`\-C\*(C'\fR switch
+for the list of known options.
+.IP "Unknown user-defined property name \ep{%s}" 4
+.IX Item "Unknown user-defined property name p{%s}"
+(F) You specified to use a property within the \f(CW\*(C`\ep{...}\*(C'\fR which was a
+syntactically valid user-defined property, but no definition was found
+for it by the time one was required to proceed. Check your spelling.
+See "User-Defined Character Properties" in perlunicode.
+.IP "Unknown verb pattern '%s' in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unknown verb pattern '%s' in regex; marked by <--\ HERE in m/%s/"
+(F) You either made a typo or have incorrectly put a \f(CW\*(C`*\*(C'\fR quantifier
+after an open brace in your pattern. Check the pattern and review
+perlre for details on legal verb patterns.
+.IP "Unknown warnings category '%s'" 4
+.IX Item "Unknown warnings category '%s'"
+(F) An error issued by the \f(CW\*(C`warnings\*(C'\fR pragma. You specified a warnings
+category that is unknown to perl at this point.
+.Sp
+Note that if you want to enable a warnings category registered by a
+module (e.g. \f(CW\*(C`use warnings \*(AqFile::Find\*(Aq\*(C'\fR), you must have loaded this
+module first.
+.IP "Unmatched [ in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unmatched [ in regex; marked by <--\ HERE in m/%s/"
+(F) The brackets around a character class must match. If you wish to
+include a closing bracket in a character class, backslash it or put it
+first. The <\-\-\ HERE shows whereabouts in the regular expression the
+problem was discovered. See perlre.
+.IP "Unmatched ( in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unmatched ( in regex; marked by <--\ HERE in m/%s/"
+.PD 0
+.IP "Unmatched ) in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unmatched ) in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) Unbackslashed parentheses must always be balanced in regular
+expressions. If you're a vi user, the % key is valuable for finding
+the matching parenthesis. The <\-\-\ HERE shows whereabouts in the
+regular expression the problem was discovered. See perlre.
+.ie n .IP "Unmatched right %s bracket" 4
+.el .IP "Unmatched right \f(CW%s\fR bracket" 4
+.IX Item "Unmatched right %s bracket"
+(F) The lexer counted more closing curly or square brackets than opening
+ones, so you're probably missing a matching opening bracket. As a
+general rule, you'll find the missing one (so to speak) near the place
+you were last editing.
+.IP "Unquoted string ""%s"" may clash with future reserved word" 4
+.IX Item "Unquoted string ""%s"" may clash with future reserved word"
+(W reserved) You used a bareword that might someday be claimed as a
+reserved word. It's best to put such a word in quotes, or capitalize it
+somehow, or insert an underbar into it. You might also declare it as a
+subroutine.
+.ie n .IP "Unrecognized character %s; marked by <\-\-\ HERE after %s near column %d" 4
+.el .IP "Unrecognized character \f(CW%s\fR; marked by <\-\-\ HERE after \f(CW%s\fR near column \f(CW%d\fR" 4
+.IX Item "Unrecognized character %s; marked by <--\ HERE after %s near column %d"
+(F) The Perl parser has no idea what to do with the specified character
+in your Perl script (or eval) near the specified column. Perhaps you
+tried to run a compressed script, a binary program, or a directory as
+a Perl program.
+.ie n .IP "Unrecognized class attribute %s" 4
+.el .IP "Unrecognized class attribute \f(CW%s\fR" 4
+.IX Item "Unrecognized class attribute %s"
+(F) You attempted to add a named attribute to a \f(CW\*(C`class\*(C'\fR definition, but
+perl does not recognise the name of the requested attribute.
+.IP "Unrecognized escape \e%c in character class in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unrecognized escape %c in character class in regex; marked by <--\ HERE in m/%s/"
+(F) You used a backslash-character combination which is not
+recognized by Perl inside character classes. This is a fatal
+error when the character class is used within \f(CW\*(C`(?[ ])\*(C'\fR.
+.IP "Unrecognized escape \e%c in character class passed through in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unrecognized escape %c in character class passed through in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl inside character classes. The character was
+understood literally, but this may change in a future version of Perl.
+The <\-\-\ HERE shows whereabouts in the regular expression the
+escape was discovered.
+.IP "Unrecognized escape \e%c passed through" 4
+.IX Item "Unrecognized escape %c passed through"
+(W misc) You used a backslash-character combination which is not
+recognized by Perl. The character was understood literally, but this may
+change in a future version of Perl.
+.IP "Unrecognized escape \e%s passed through in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unrecognized escape %s passed through in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl. The character(s) were understood literally, but
+this may change in a future version of Perl. The <\-\-\ HERE shows
+whereabouts in the regular expression the escape was discovered.
+.ie n .IP "Unrecognized field attribute %s" 4
+.el .IP "Unrecognized field attribute \f(CW%s\fR" 4
+.IX Item "Unrecognized field attribute %s"
+(F) You attempted to add a named attribute to a \f(CW\*(C`field\*(C'\fR definition, but
+perl does not recognise the name of the requested attribute.
+.IP "Unrecognized signal name ""%s""" 4
+.IX Item "Unrecognized signal name ""%s"""
+(F) You specified a signal name to the \fBkill()\fR function that was not
+recognized. Say \f(CW\*(C`kill \-l\*(C'\fR in your shell to see the valid signal names
+on your system.
+.IP "Unrecognized switch: \-%s (\-h will show valid options)" 4
+.IX Item "Unrecognized switch: -%s (-h will show valid options)"
+(F) You specified an illegal option to Perl. Don't do that. (If you
+think you didn't do that, check the #! line to see if it's supplying the
+bad switch on your behalf.)
+.ie n .IP "Unsuccessful %s on filename containing newline" 4
+.el .IP "Unsuccessful \f(CW%s\fR on filename containing newline" 4
+.IX Item "Unsuccessful %s on filename containing newline"
+(W newline) A file operation was attempted on a filename, and that
+operation failed, PROBABLY because the filename contained a newline,
+PROBABLY because you forgot to \fBchomp()\fR it off. See "chomp" in perlfunc.
+.IP "Unsupported directory function ""%s"" called" 4
+.IX Item "Unsupported directory function ""%s"" called"
+(F) Your machine doesn't support \fBopendir()\fR and \fBreaddir()\fR.
+.ie n .IP "Unsupported function %s" 4
+.el .IP "Unsupported function \f(CW%s\fR" 4
+.IX Item "Unsupported function %s"
+(F) This machine doesn't implement the indicated function, apparently.
+At least, Configure doesn't think so.
+.IP "Unsupported function fork" 4
+.IX Item "Unsupported function fork"
+(F) Your version of executable does not support forking.
+.Sp
+Note that under some systems, like OS/2, there may be different flavors
+of Perl executables, some of which may support fork, some not. Try
+changing the name you call Perl by to \f(CW\*(C`perl_\*(C'\fR, \f(CW\*(C`perl_\|_\*(C'\fR, and so on.
+.ie n .IP "Unsupported script encoding %s" 4
+.el .IP "Unsupported script encoding \f(CW%s\fR" 4
+.IX Item "Unsupported script encoding %s"
+(F) Your program file begins with a Unicode Byte Order Mark (BOM) which
+declares it to be in a Unicode encoding that Perl cannot read.
+.IP "Unsupported socket function ""%s"" called" 4
+.IX Item "Unsupported socket function ""%s"" called"
+(F) Your machine doesn't support the Berkeley socket mechanism, or at
+least that's what Configure thought.
+.IP "Unterminated '(*...' argument in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unterminated '(*...' argument in regex; marked by <-- HERE in m/%s/"
+(F) You used a pattern of the form \f(CW\*(C`(*...:...)\*(C'\fR but did not terminate
+the pattern with a \f(CW\*(C`)\*(C'\fR. Fix the pattern and retry.
+.IP "Unterminated attribute list" 4
+.IX Item "Unterminated attribute list"
+(F) The lexer found something other than a simple identifier at the
+start of an attribute, and it wasn't a semicolon or the start of a
+block. Perhaps you terminated the parameter list of the previous
+attribute too soon. See attributes.
+.IP "Unterminated attribute parameter in attribute list" 4
+.IX Item "Unterminated attribute parameter in attribute list"
+(F) The lexer saw an opening (left) parenthesis character while parsing
+an attribute list, but the matching closing (right) parenthesis
+character was not found. You may need to add (or remove) a backslash
+character to get your parentheses to balance. See attributes.
+.IP "Unterminated compressed integer" 4
+.IX Item "Unterminated compressed integer"
+(F) An argument to unpack("w",...) was incompatible with the BER
+compressed integer format and could not be converted to an integer.
+See "pack" in perlfunc.
+.IP "Unterminated '(*...' construct in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Unterminated '(*...' construct in regex; marked by <-- HERE in m/%s/"
+(F) You used a pattern of the form \f(CW\*(C`(*...)\*(C'\fR but did not terminate
+the pattern with a \f(CW\*(C`)\*(C'\fR. Fix the pattern and retry.
+.IP "Unterminated delimiter for here document" 4
+.IX Item "Unterminated delimiter for here document"
+(F) This message occurs when a here document label has an initial
+quotation mark but the final quotation mark is missing. Perhaps
+you wrote:
+.Sp
+.Vb 1
+\& <<"foo
+.Ve
+.Sp
+instead of:
+.Sp
+.Vb 1
+\& <<"foo"
+.Ve
+.IP "Unterminated \eg... pattern in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unterminated g... pattern in regex; marked by <--\ HERE in m/%s/"
+.PD 0
+.IP "Unterminated \eg{...} pattern in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unterminated g{...} pattern in regex; marked by <--\ HERE in m/%s/"
+.PD
+(F) In a regular expression, you had a \f(CW\*(C`\eg\*(C'\fR that wasn't followed by a
+proper group reference. In the case of \f(CW\*(C`\eg{\*(C'\fR, the closing brace is
+missing; otherwise the \f(CW\*(C`\eg\*(C'\fR must be followed by an integer. Fix the
+pattern and retry.
+.IP "Unterminated <> operator" 4
+.IX Item "Unterminated <> 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 finding it. Chances are you left some needed parentheses out
+earlier in the line, and you really meant a "less than".
+.IP "Unterminated verb pattern argument in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unterminated verb pattern argument in regex; marked by <--\ HERE in m/%s/"
+(F) You used a pattern of the form \f(CW\*(C`(*VERB:ARG)\*(C'\fR but did not terminate
+the pattern with a \f(CW\*(C`)\*(C'\fR. Fix the pattern and retry.
+.IP "Unterminated verb pattern in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Unterminated verb pattern in regex; marked by <--\ HERE in m/%s/"
+(F) You used a pattern of the form \f(CW\*(C`(*VERB)\*(C'\fR but did not terminate
+the pattern with a \f(CW\*(C`)\*(C'\fR. Fix the pattern and retry.
+.ie n .IP "untie attempted while %d inner references still exist" 4
+.el .IP "untie attempted while \f(CW%d\fR inner references still exist" 4
+.IX Item "untie attempted while %d inner references still exist"
+(W untie) A copy of the object returned from \f(CW\*(C`tie\*(C'\fR (or \f(CW\*(C`tied\*(C'\fR) was
+still valid when \f(CW\*(C`untie\*(C'\fR was called.
+.IP "Usage: POSIX::%s(%s)" 4
+.IX Item "Usage: POSIX::%s(%s)"
+(F) You called a POSIX function with incorrect arguments.
+See "FUNCTIONS" in POSIX for more information.
+.IP "Usage: Win32::%s(%s)" 4
+.IX Item "Usage: Win32::%s(%s)"
+(F) You called a Win32 function with incorrect arguments.
+See Win32 for more information.
+.ie n .IP "$[ used in %s (did you mean $] ?)" 4
+.el .IP "$[ used in \f(CW%s\fR (did you mean $] ?)" 4
+.IX Item "$[ used in %s (did you mean $] ?)"
+(W syntax) You used \f(CW$[\fR in a comparison, such as:
+.Sp
+.Vb 3
+\& if ($[ > 5.006) {
+\& ...
+\& }
+.Ve
+.Sp
+You probably meant to use \f(CW$]\fR instead. \f(CW$[\fR is the base for indexing
+arrays. \f(CW$]\fR is the Perl version number in decimal.
+.IP "Use ""%s"" instead of ""%s""" 4
+.IX Item "Use ""%s"" instead of ""%s"""
+(F) The second listed construct is no longer legal. Use the first one
+instead.
+.IP "Useless assignment to a temporary" 4
+.IX Item "Useless assignment to a temporary"
+(W misc) You assigned to an lvalue subroutine, but what
+the subroutine returned was a temporary scalar about to
+be discarded, so the assignment had no effect.
+.IP "Useless (?\-%s) \- don't use /%s modifier in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Useless (?-%s) - don't use /%s modifier in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You have used an internal modifier such as (?\-o) that has no
+meaning unless removed from the entire regexp:
+.Sp
+.Vb 1
+\& if ($string =~ /(?\-o)$pattern/o) { ... }
+.Ve
+.Sp
+must be written as
+.Sp
+.Vb 1
+\& if ($string =~ /$pattern/) { ... }
+.Ve
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. See perlre.
+.ie n .IP "Useless localization of %s" 4
+.el .IP "Useless localization of \f(CW%s\fR" 4
+.IX Item "Useless localization of %s"
+(W syntax) The localization of lvalues such as \f(CWlocal($x=10)\fR is legal,
+but in fact the \fBlocal()\fR currently has no effect. This may change at
+some point in the future, but in the meantime such code is discouraged.
+.IP "Useless (?%s) \- use /%s modifier in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Useless (?%s) - use /%s modifier in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You have used an internal modifier such as (?o) that has no
+meaning unless applied to the entire regexp:
+.Sp
+.Vb 1
+\& if ($string =~ /(?o)$pattern/) { ... }
+.Ve
+.Sp
+must be written as
+.Sp
+.Vb 1
+\& if ($string =~ /$pattern/o) { ... }
+.Ve
+.Sp
+The <\-\-\ HERE shows whereabouts in the regular expression the problem was
+discovered. See perlre.
+.IP "Useless use of attribute ""const""" 4
+.IX Item "Useless use of attribute ""const"""
+(W misc) The \f(CW\*(C`const\*(C'\fR attribute has no effect except
+on anonymous closure prototypes. You applied it to
+a subroutine via attributes.pm. This is only useful
+inside an attribute handler for an anonymous subroutine.
+.IP "Useless use of /d modifier in transliteration operator" 4
+.IX Item "Useless use of /d modifier in transliteration operator"
+(W misc) You have used the /d modifier where the searchlist has the
+same length as the replacelist. See perlop for more information
+about the /d modifier.
+.IP "Useless use of \eE" 4
+.IX Item "Useless use of E"
+(W misc) You have a \eE in a double-quotish string without a \f(CW\*(C`\eU\*(C'\fR,
+\&\f(CW\*(C`\eL\*(C'\fR or \f(CW\*(C`\eQ\*(C'\fR preceding it.
+.IP "Useless use of greediness modifier '%c' in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Useless use of greediness modifier '%c' in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You specified something like these:
+.Sp
+.Vb 2
+\& qr/a{3}?/
+\& qr/b{1,1}+/
+.Ve
+.Sp
+The \f(CW"?"\fR and \f(CW"+"\fR don't have any effect, as they modify whether to
+match more or fewer when there is a choice, and by specifying to match
+exactly a given number, there is no room left for a choice.
+.ie n .IP "Useless use of %s in scalar context" 4
+.el .IP "Useless use of \f(CW%s\fR in scalar context" 4
+.IX Item "Useless use of %s in scalar context"
+(W scalar) You did something whose only interesting return value is a
+list without a side effect in scalar context, which does not accept a
+list.
+.Sp
+For example
+.Sp
+.Vb 1
+\& my $x = sort @y;
+.Ve
+.Sp
+This is not very useful, and perl currently optimizes this away.
+.ie n .IP "Useless use of %s in void context" 4
+.el .IP "Useless use of \f(CW%s\fR in void context" 4
+.IX Item "Useless use of %s in void context"
+(W void) You did something without a side effect in a context that does
+nothing with the return value, such as a statement that doesn't return a
+value from a block, or the left side of a scalar comma operator. Very
+often this points not to stupidity on your part, but a failure of Perl
+to parse your program the way you thought it would. For example, you'd
+get this if you mixed up your C precedence with Python precedence and
+said
+.Sp
+.Vb 1
+\& $one, $two = 1, 2;
+.Ve
+.Sp
+when you meant to say
+.Sp
+.Vb 1
+\& ($one, $two) = (1, 2);
+.Ve
+.Sp
+Another common error is to use ordinary parentheses to construct a list
+reference when you should be using square or curly brackets, for
+example, if you say
+.Sp
+.Vb 1
+\& $array = (1,2);
+.Ve
+.Sp
+when you should have said
+.Sp
+.Vb 1
+\& $array = [1,2];
+.Ve
+.Sp
+The square brackets explicitly turn a list value into a scalar value,
+while parentheses do not. So when a parenthesized list is evaluated in
+a scalar context, the comma is treated like C's comma operator, which
+throws away the left argument, which is not what you want. See
+perlref for more on this.
+.Sp
+This warning will not be issued for numerical constants equal to 0 or 1
+since they are often used in statements like
+.Sp
+.Vb 1
+\& 1 while sub_with_side_effects();
+.Ve
+.Sp
+String constants that would normally evaluate to 0 or 1 are warned
+about.
+.IP "Useless use of (?\-p) in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Useless use of (?-p) in regex; marked by <--\ HERE in m/%s/"
+(W regexp) The \f(CW\*(C`p\*(C'\fR modifier cannot be turned off once set. Trying to do
+so is futile.
+.IP "Useless use of ""re"" pragma" 4
+.IX Item "Useless use of ""re"" pragma"
+(W) You did \f(CW\*(C`use re;\*(C'\fR without any arguments. That isn't very useful.
+.ie n .IP "Useless use of %s with no values" 4
+.el .IP "Useless use of \f(CW%s\fR with no values" 4
+.IX Item "Useless use of %s with no values"
+(W syntax) You used the \fBpush()\fR or \fBunshift()\fR function with no arguments
+apart from the array, like \f(CWpush(@x)\fR or \f(CWunshift(@foo)\fR. That won't
+usually have any effect on the array, so is completely useless. It's
+possible in principle that push(@tied_array) could have some effect
+if the array is tied to a class which implements a PUSH method. If so,
+you can write it as \f(CW\*(C`push(@tied_array,())\*(C'\fR to avoid this warning.
+.IP """use"" not allowed in expression" 4
+.IX Item """use"" not allowed in expression"
+(F) The "use" keyword is recognized and executed at compile time, and
+returns no useful value. See perlmod.
+.ie n .IP "Use of @_ in %s with signatured subroutine is experimental" 4
+.el .IP "Use of \f(CW@_\fR in \f(CW%s\fR with signatured subroutine is experimental" 4
+.IX Item "Use of @_ in %s with signatured subroutine is experimental"
+(S experimental::args_array_with_signatures) An expression involving the
+\&\f(CW@_\fR arguments array was found in a subroutine that uses a signature.
+This is experimental because the interaction between the arguments
+array and parameter handling via signatures is not guaranteed to remain
+stable in any future version of Perl, and such code should be avoided.
+.IP "Use of bare << to mean <<"""" is forbidden" 4
+.IX Item "Use of bare << to mean <<"""" is forbidden"
+(F) You are now required to use the explicitly quoted form if you wish
+to use an empty line as the terminator of the here-document.
+.Sp
+Use of a bare terminator was deprecated in Perl 5.000, and is a fatal
+error as of Perl 5.28.
+.IP "Use of /c modifier is meaningless in s///" 4
+.IX Item "Use of /c modifier is meaningless in s///"
+(W regexp) You used the /c modifier in a substitution. The /c
+modifier is not presently meaningful in substitutions.
+.IP "Use of /c modifier is meaningless without /g" 4
+.IX Item "Use of /c modifier is meaningless without /g"
+(W regexp) You used the /c modifier with a regex operand, but didn't
+use the /g modifier. Currently, /c is meaningful only when /g is
+used. (This may change in the future.)
+.IP "Use of code point 0x%s is not allowed; the permissible max is 0x%X" 4
+.IX Item "Use of code point 0x%s is not allowed; the permissible max is 0x%X"
+.PD 0
+.IP "Use of code point 0x%s is not allowed; the permissible max is 0x%X in regex; marked by <\-\- HERE in m/%s/" 4
+.IX Item "Use of code point 0x%s is not allowed; the permissible max is 0x%X in regex; marked by <-- HERE in m/%s/"
+.PD
+(F) You used a code point that is not allowed, because it is too large.
+Unicode only allows code points up to 0x10FFFF, but Perl allows much
+larger ones. Earlier versions of Perl allowed code points above IV_MAX
+(0x7FFFFFF on 32\-bit platforms, 0x7FFFFFFFFFFFFFFF on 64\-bit platforms),
+however, this could possibly break the perl interpreter in some constructs,
+including causing it to hang in a few cases.
+.Sp
+If your code is to run on various platforms, keep in mind that the upper
+limit depends on the platform. It is much larger on 64\-bit word sizes
+than 32\-bit ones.
+.Sp
+The use of out of range code points was deprecated in Perl 5.24, and
+became a fatal error in Perl 5.28.
+.IP "Use of \fBeach()\fR on hash after insertion without resetting hash iterator results in undefined behavior" 4
+.IX Item "Use of each() on hash after insertion without resetting hash iterator results in undefined behavior"
+(S internal) The behavior of \f(CWeach()\fR after insertion is undefined;
+it may skip items, or visit items more than once. Consider using
+\&\f(CWkeys()\fR instead of \f(CWeach()\fR.
+.IP "Use of := for an empty attribute list is not allowed" 4
+.IX Item "Use of := for an empty attribute list is not allowed"
+(F) The construction \f(CW\*(C`my $x := 42\*(C'\fR used to parse as equivalent to
+\&\f(CW\*(C`my $x : = 42\*(C'\fR (applying an empty attribute list to \f(CW$x\fR).
+This construct was deprecated in 5.12.0, and has now been made a syntax
+error, so \f(CW\*(C`:=\*(C'\fR can be reclaimed as a new operator in the future.
+.Sp
+If you need an empty attribute list, for example in a code generator, add
+a space before the \f(CW\*(C`=\*(C'\fR.
+.ie n .IP "Use of %s for non\-UTF\-8 locale is wrong. Assuming a UTF\-8 locale" 4
+.el .IP "Use of \f(CW%s\fR for non\-UTF\-8 locale is wrong. Assuming a UTF\-8 locale" 4
+.IX Item "Use of %s for non-UTF-8 locale is wrong. Assuming a UTF-8 locale"
+(W locale) You are matching a regular expression using locale rules,
+and the specified construct was encountered. This construct is only
+valid for UTF\-8 locales, which the current locale isn't. This doesn't
+make sense. Perl will continue, assuming a Unicode (UTF\-8) locale, but
+the results are likely to be wrong.
+.IP "Use of freed value in iteration" 4
+.IX Item "Use of freed value in iteration"
+(F) Perhaps you modified the iterated array within the loop?
+This error is typically caused by code like the following:
+.Sp
+.Vb 2
+\& @a = (3,4);
+\& @a = () for (1,2,@a);
+.Ve
+.Sp
+You are not supposed to modify arrays while they are being iterated over.
+For speed and efficiency reasons, Perl internally does not do full
+reference-counting of iterated items, hence deleting such an item in the
+middle of an iteration causes Perl to see a freed value.
+.IP "Use of /g modifier is meaningless in split" 4
+.IX Item "Use of /g modifier is meaningless in split"
+(W regexp) You used the /g modifier on the pattern for a \f(CW\*(C`split\*(C'\fR
+operator. Since \f(CW\*(C`split\*(C'\fR always tries to match the pattern
+repeatedly, the \f(CW\*(C`/g\*(C'\fR has no effect.
+.IP "Use of ""goto"" to jump into a construct is deprecated" 4
+.IX Item "Use of ""goto"" to jump into a construct is deprecated"
+(D deprecated::goto_construct) Using \f(CW\*(C`goto\*(C'\fR to jump from an outer scope into an inner
+scope is deprecated and should be avoided.
+.Sp
+This was deprecated in Perl 5.12.
+.ie n .IP "Use of '%s' in \ep{} or \eP{} is deprecated because: %s" 4
+.el .IP "Use of '%s' in \ep{} or \eP{} is deprecated because: \f(CW%s\fR" 4
+.IX Item "Use of '%s' in p{} or P{} is deprecated because: %s"
+(D deprecated::unicode_property_name) Certain properties are deprecated
+by Unicode, and may eventually be removed from the Standard, at which
+time Perl will follow along. In the meantime, this message is raised to
+notify you.
+.ie n .IP "Use of inherited AUTOLOAD for non-method %s::%s() is no longer allowed" 4
+.el .IP "Use of inherited AUTOLOAD for non-method \f(CW%s::\fR%s() is no longer allowed" 4
+.IX Item "Use of inherited AUTOLOAD for non-method %s::%s() is no longer allowed"
+(F) As an accidental feature, \f(CW\*(C`AUTOLOAD\*(C'\fR subroutines were looked up as
+methods (using the \f(CW@ISA\fR hierarchy), even when the subroutines to be
+autoloaded were called as plain functions (e.g. \f(CWFoo::bar()\fR), not as
+methods (e.g. \f(CW\*(C`Foo\->bar()\*(C'\fR or \f(CW\*(C`$obj\->bar()\*(C'\fR).
+.Sp
+This was deprecated in Perl 5.004, and was made fatal in Perl 5.28.
+.ie n .IP "Use of %s in printf format not supported" 4
+.el .IP "Use of \f(CW%s\fR in printf format not supported" 4
+.IX Item "Use of %s in printf format not supported"
+(F) You attempted to use a feature of printf that is accessible from
+only C. This usually means there's a better way to do it in Perl.
+.IP "Use of '%s' is deprecated as a string delimiter" 4
+.IX Item "Use of '%s' is deprecated as a string delimiter"
+(D deprecated::delimiter_will_be_paired) You used the given character as
+a starting delimiter of a string outside the scope of
+\&\f(CW\*(C`use\ feature\ \*(Aqextra_paired_delimiters\*(Aq\*(C'\fR. This character is the
+mirror image of another Unicode character; within the scope of that
+feature, the two are considered a pair for delimitting strings. It is
+planned to make that feature the default, at which point this usage
+would become illegal; hence this warning.
+.Sp
+For now, you may live with this warning, or turn it off, but this code
+will no longer compile in a future version of Perl. Or you can turn on
+\&\f(CW\*(C`use\ feature\ \*(Aqextra_paired_delimiters\*(Aq\*(C'\fR and use the character that
+is the mirror image of this one for the closing string delimiter.
+.IP "Use of '%s' is experimental as a string delimiter" 4
+.IX Item "Use of '%s' is experimental as a string delimiter"
+(S experimental::extra_paired_delimiters) This warning is emitted if
+you use as a string delimiter one of the non-ASCII mirror image ones
+enabled by \f(CW\*(C`use\ feature\ \*(Aqextra_paired_delimiters\*(Aq\*(C'\fR. Simply suppress
+the warning if you want to use the feature, but know that in doing so
+you are taking the risk of using an experimental feature which may
+change or be removed in a future Perl version:
+.ie n .IP "Use of %s is not allowed in Unicode property wildcard subpatterns in regex; marked by <\-\-\ HERE in m/%s/" 4
+.el .IP "Use of \f(CW%s\fR is not allowed in Unicode property wildcard subpatterns in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Use of %s is not allowed in Unicode property wildcard subpatterns in regex; marked by <--\ HERE in m/%s/"
+(F) You were using a wildcard subpattern a Unicode property value, and
+the subpattern contained something that is illegal. Not all regular
+expression capabilities are legal in such subpatterns, and this is one.
+Rewrite your subppattern to not use the offending construct.
+See "Wildcards in Property Values" in perlunicode.
+.IP "Use of \-l on filehandle%s" 4
+.IX Item "Use of -l on filehandle%s"
+(W io) A filehandle represents an opened file, and when you opened the file
+it already went past any symlink you are presumably trying to look for.
+The operation returned \f(CW\*(C`undef\*(C'\fR. Use a filename instead.
+.IP "Use of reference ""%s"" as array index" 4
+.IX Item "Use of reference ""%s"" as array index"
+(W misc) You tried to use a reference as an array index; this probably
+isn't what you mean, because references in numerical context tend
+to be huge numbers, and so usually indicates programmer error.
+.Sp
+If you really do mean it, explicitly numify your reference, like so:
+\&\f(CW$array[0+$ref]\fR. This warning is not given for overloaded objects,
+however, because you can overload the numification and stringification
+operators and then you presumably know what you are doing.
+.ie n .IP "Use of strings with code points over 0xFF as arguments to %s operator is not allowed" 4
+.el .IP "Use of strings with code points over 0xFF as arguments to \f(CW%s\fR operator is not allowed" 4
+.IX Item "Use of strings with code points over 0xFF as arguments to %s operator is not allowed"
+(F) You tried to use one of the string bitwise operators (\f(CW\*(C`&\*(C'\fR or \f(CW\*(C`|\*(C'\fR or \f(CW\*(C`^\*(C'\fR or
+\&\f(CW\*(C`~\*(C'\fR) on a string containing a code point over 0xFF. The string bitwise
+operators treat their operands as strings of bytes, and values beyond
+0xFF are nonsensical in this context.
+.Sp
+Certain instances became fatal in Perl 5.28; others in perl 5.32.
+.IP "Use of strings with code points over 0xFF as arguments to vec is forbidden" 4
+.IX Item "Use of strings with code points over 0xFF as arguments to vec is forbidden"
+(F) You tried to use \f(CW\*(C`vec\*(C'\fR
+on a string containing a code point over 0xFF, which is nonsensical here.
+.Sp
+This became fatal in Perl 5.32.
+.ie n .IP "Use of tainted arguments in %s is deprecated" 4
+.el .IP "Use of tainted arguments in \f(CW%s\fR is deprecated" 4
+.IX Item "Use of tainted arguments in %s is deprecated"
+(W taint, deprecated) You have supplied \f(CWsystem()\fR or \f(CWexec()\fR with multiple
+arguments and at least one of them is tainted. This used to be allowed
+but will become a fatal error in a future version of perl. Untaint your
+arguments. See perlsec.
+.IP "Use of unassigned code point or non-standalone grapheme for a delimiter is not allowed" 4
+.IX Item "Use of unassigned code point or non-standalone grapheme for a delimiter is not allowed"
+(F)
+A grapheme is what appears to a native-speaker of a language to be a
+character. In Unicode (and hence Perl) a grapheme may actually be
+several adjacent characters that together form a complete grapheme. For
+example, there can be a base character, like "R" and an accent, like a
+circumflex "^", that appear when displayed to be a single character with
+the circumflex hovering over the "R". Perl currently allows things like
+that circumflex to be delimiters of strings, patterns, \fIetc\fR. When
+displayed, the circumflex would look like it belongs to the character
+just to the left of it. In order to move the language to be able to
+accept graphemes as delimiters, we cannot allow the use of
+delimiters which aren't graphemes by themselves. Also, a delimiter must
+already be assigned (or known to be never going to be assigned) to try
+to future-proof code, for otherwise code that works today would fail to
+compile if the currently unassigned delimiter ends up being something
+that isn't a stand-alone grapheme. Because Unicode is never going to
+assign
+non-character code points, nor
+code points that are above the legal Unicode maximum, those can be delimiters, and
+their use is legal.
+.IP "Use of uninitialized value%s" 4
+.IX Item "Use of uninitialized value%s"
+(W uninitialized) An undefined value was used as if it were already
+defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
+To suppress this warning assign a defined value to your variables.
+.Sp
+To help you figure out what was undefined, perl will try to tell you
+the name of the variable (if any) that was undefined. In some cases
+it cannot do this, so it also tells you what operation you used the
+undefined value in. Note, however, that perl optimizes your program
+and the operation displayed in the warning may not necessarily appear
+literally in your program. For example, \f(CW"that $foo"\fR is usually
+optimized into \f(CW\*(C`"that " . $foo\*(C'\fR, and the warning will refer to the
+\&\f(CW\*(C`concatenation (.)\*(C'\fR operator, even though there is no \f(CW\*(C`.\*(C'\fR in
+your program.
+.IP """use re 'strict'"" is experimental" 4
+.IX Item """use re 'strict'"" is experimental"
+(S experimental::re_strict) The things that are different when a regular
+expression pattern is compiled under \f(CW\*(Aqstrict\*(Aq\fR are subject to change
+in future Perl releases in incompatible ways. This means that a pattern
+that compiles today may not in a future Perl release. This warning is
+to alert you to that risk.
+.IP "Use \ex{...} for more than two hex characters in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Use x{...} for more than two hex characters in regex; marked by <--\ HERE in m/%s/"
+(F) In a regular expression, you said something like
+.Sp
+.Vb 1
+\& (?[ [ \exBEEF ] ])
+.Ve
+.Sp
+Perl isn't sure if you meant this
+.Sp
+.Vb 1
+\& (?[ [ \ex{BEEF} ] ])
+.Ve
+.Sp
+or if you meant this
+.Sp
+.Vb 1
+\& (?[ [ \ex{BE} E F ] ])
+.Ve
+.Sp
+You need to add either braces or blanks to disambiguate.
+.IP "Using just the first character returned by \eN{} in character class in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Using just the first character returned by N{} in character class in regex; marked by <--\ HERE in m/%s/"
+(W regexp) Named Unicode character escapes \f(CW\*(C`(\eN{...})\*(C'\fR may return
+a multi-character sequence. Even though a character class is
+supposed to match just one character of input, perl will match
+the whole thing correctly, except when the class is inverted
+(\f(CW\*(C`[^...]\*(C'\fR), or the escape is the beginning or final end point of
+a range. For these, what should happen isn't clear at all. In
+these circumstances, Perl discards all but the first character
+of the returned sequence, which is not likely what you want.
+.IP "Using just the single character results returned by \ep{} in (?[...]) in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Using just the single character results returned by p{} in (?[...]) in regex; marked by <--\ HERE in m/%s/"
+(W regexp) Extended character classes currently cannot handle operands
+that evaluate to more than one character. These are removed from the
+results of the expansion of the \f(CW\*(C`\ep{}\*(C'\fR.
+.Sp
+This situation can happen, for example, in
+.Sp
+.Vb 1
+\& (?[ \ep{name=/KATAKANA/} ])
+.Ve
+.Sp
+"KATAKANA LETTER AINU P" is a legal Unicode name (technically a "named
+sequence"), but it is actually two characters. The above expression
+with match only the Unicode names containing KATAKANA that represent
+single characters.
+.IP "Using /u for '%s' instead of /%s in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Using /u for '%s' instead of /%s in regex; marked by <--\ HERE in m/%s/"
+(W regexp) You used a Unicode boundary (\f(CW\*(C`\eb{...}\*(C'\fR or \f(CW\*(C`\eB{...}\*(C'\fR) in a
+portion of a regular expression where the character set modifiers \f(CW\*(C`/a\*(C'\fR
+or \f(CW\*(C`/aa\*(C'\fR are in effect. These two modifiers indicate an ASCII
+interpretation, and this doesn't make sense for a Unicode definition.
+The generated regular expression will compile so that the boundary uses
+all of Unicode. No other portion of the regular expression is affected.
+.ie n .IP "Using !~ with %s doesn't make sense" 4
+.el .IP "Using !~ with \f(CW%s\fR doesn't make sense" 4
+.IX Item "Using !~ with %s doesn't make sense"
+(F) Using the \f(CW\*(C`!~\*(C'\fR operator with \f(CW\*(C`s///r\*(C'\fR, \f(CW\*(C`tr///r\*(C'\fR or \f(CW\*(C`y///r\*(C'\fR is
+currently reserved for future use, as the exact behavior has not
+been decided. (Simply returning the boolean opposite of the
+modified string is usually not particularly useful.)
+.IP "UTF\-16 surrogate U+%X" 4
+.IX Item "UTF-16 surrogate U+%X"
+(S surrogate) You had a UTF\-16 surrogate in a context where they are
+not considered acceptable. These code points, between U+D800 and
+U+DFFF (inclusive), are used by Unicode only for UTF\-16. However, Perl
+internally allows all unsigned integer code points (up to the size limit
+available on your platform), including surrogates. But these can cause
+problems when being input or output, which is likely where this message
+came from. If you really really know what you are doing you can turn
+off this warning by \f(CW\*(C`no warnings \*(Aqsurrogate\*(Aq;\*(C'\fR.
+.ie n .IP "Value of %s can be ""0""; test with \fBdefined()\fR" 4
+.el .IP "Value of \f(CW%s\fR can be ""0""; test with \fBdefined()\fR" 4
+.IX Item "Value of %s can be ""0""; test with defined()"
+(W misc) In a conditional expression, you used <HANDLE>, <*> (glob),
+\&\f(CWeach()\fR, or \f(CWreaddir()\fR as a boolean value. Each of these constructs
+can return a value of "0"; that would make the conditional expression
+false, which is probably not what you intended. When using these
+constructs in conditional expressions, test their values with the
+\&\f(CW\*(C`defined\*(C'\fR operator.
+.IP "Value of CLI symbol ""%s"" too long" 4
+.IX Item "Value of CLI symbol ""%s"" too long"
+(W misc) A warning peculiar to VMS. Perl tried to read the value of an
+\&\f(CW%ENV\fR element from a CLI symbol table, and found a resultant string
+longer than 1024 characters. The return value has been truncated to
+1024 characters.
+.IP "Variable ""%s"" is not available" 4
+.IX Item "Variable ""%s"" is not available"
+(W closure) During compilation, an inner named subroutine or eval is
+attempting to capture an outer lexical that is not currently available.
+This can happen for one of two reasons. First, the outer lexical may be
+declared in an outer anonymous subroutine that has not yet been created.
+(Remember that named subs are created at compile time, while anonymous
+subs are created at run-time.) For example,
+.Sp
+.Vb 1
+\& sub { my $a; sub f { $a } }
+.Ve
+.Sp
+At the time that f is created, it can't capture the current value of \f(CW$a\fR,
+since the anonymous subroutine hasn't been created yet. Conversely,
+the following won't give a warning since the anonymous subroutine has by
+now been created and is live:
+.Sp
+.Vb 1
+\& sub { my $a; eval \*(Aqsub f { $a }\*(Aq }\->();
+.Ve
+.Sp
+The second situation is caused by an eval accessing a variable that has
+gone out of scope, for example,
+.Sp
+.Vb 5
+\& sub f {
+\& my $a;
+\& sub { eval \*(Aq$a\*(Aq }
+\& }
+\& f()\->();
+.Ve
+.Sp
+Here, when the '$a' in the eval is being compiled, f() is not currently
+being executed, so its \f(CW$a\fR is not available for capture.
+.IP "Variable ""%s"" is not imported%s" 4
+.IX Item "Variable ""%s"" is not imported%s"
+(S misc) With "use strict" in effect, you referred to a global variable
+that you apparently thought was imported from another module, because
+something else of the same name (usually a subroutine) is exported by
+that module. It usually means you put the wrong funny character on the
+front of your variable. It is also possible you used an "our" variable
+whose scope has ended.
+.IP "Variable length lookbehind not implemented in regex m/%s/" 4
+.IX Item "Variable length lookbehind not implemented in regex m/%s/"
+(F) \fBThis message no longer should be raised as of Perl 5.30.\fR It is
+retained in this document as a convenience for people using an earlier
+Perl version.
+.Sp
+In Perl 5.30 and earlier, lookbehind is allowed
+only for subexpressions whose length is fixed and
+known at compile time. For positive lookbehind, you can use the \f(CW\*(C`\eK\*(C'\fR
+regex construct as a way to get the equivalent functionality. See
+(?<=pattern) and \eK in perlre.
+.Sp
+Starting in Perl 5.18, there are non-obvious Unicode rules under \f(CW\*(C`/i\*(C'\fR
+that can match variably, but which you might not think could. For
+example, the substring \f(CW"ss"\fR can match the single character LATIN
+SMALL LETTER SHARP S. Here's a complete list of the current ones
+affecting ASCII characters:
+.Sp
+.Vb 11
+\& ASCII
+\& sequence Matches single letter under /i
+\& FF U+FB00 LATIN SMALL LIGATURE FF
+\& FFI U+FB03 LATIN SMALL LIGATURE FFI
+\& FFL U+FB04 LATIN SMALL LIGATURE FFL
+\& FI U+FB01 LATIN SMALL LIGATURE FI
+\& FL U+FB02 LATIN SMALL LIGATURE FL
+\& SS U+00DF LATIN SMALL LETTER SHARP S
+\& U+1E9E LATIN CAPITAL LETTER SHARP S
+\& ST U+FB06 LATIN SMALL LIGATURE ST
+\& U+FB05 LATIN SMALL LIGATURE LONG S T
+.Ve
+.Sp
+This list is subject to change, but is quite unlikely to.
+Each ASCII sequence can be any combination of upper\- and lowercase.
+.Sp
+You can avoid this by using a bracketed character class in the
+lookbehind assertion, like
+.Sp
+.Vb 2
+\& (?<![sS]t)
+\& (?<![fF]f[iI])
+.Ve
+.Sp
+This fools Perl into not matching the ligatures.
+.Sp
+Another option for Perls starting with 5.16, if you only care about
+ASCII matches, is to add the \f(CW\*(C`/aa\*(C'\fR modifier to the regex. This will
+exclude all these non-obvious matches, thus getting rid of this message.
+You can also say
+.Sp
+.Vb 1
+\& use if $] ge 5.016, re => \*(Aq/aa\*(Aq;
+.Ve
+.Sp
+to apply \f(CW\*(C`/aa\*(C'\fR to all regular expressions compiled within its scope.
+See re.
+.IP "Variable length positive lookbehind with capturing is experimental in regex m/%s/" 4
+.IX Item "Variable length positive lookbehind with capturing is experimental in regex m/%s/"
+(W) Variable length positive lookbehind with capturing is not well defined. This
+warning alerts you to the fact that you are using a construct which may
+change in a future version of perl. See the
+documentation of Positive Lookbehind in perlre
+for details. You may silence this warning with the following:
+.Sp
+.Vb 1
+\& no warnings \*(Aqexperimental::vlb\*(Aq;
+.Ve
+.IP "Variable length negative lookbehind with capturing is experimental in regex m/%s/" 4
+.IX Item "Variable length negative lookbehind with capturing is experimental in regex m/%s/"
+(W) Variable length negative lookbehind with capturing is not well defined. This
+warning alerts you to the fact that you are using a construct which may
+change in a future version of perl. See the
+documentation of Negative Lookbehind in perlre
+for details. You may silence this warning with the following:
+.Sp
+.Vb 1
+\& no warnings \*(Aqexperimental::vlb\*(Aq;
+.Ve
+.ie n .IP """%s"" variable %s masks earlier declaration in same %s" 4
+.el .IP """%s"" variable \f(CW%s\fR masks earlier declaration in same \f(CW%s\fR" 4
+.IX Item """%s"" variable %s masks earlier declaration in same %s"
+(W shadow) A "my", "our" or "state" variable has been redeclared in the
+current scope or statement, effectively eliminating all access to the
+previous instance. This is almost always a typographical error. Note
+that the earlier variable will still exist until the end of the scope
+or until all closure references to it are destroyed.
+.IP "Variable syntax" 4
+.IX Item "Variable syntax"
+(A) You've accidentally run your script through \fBcsh\fR instead
+of Perl. Check the #! line, or manually feed your script into
+Perl yourself.
+.IP "Variable ""%s"" will not stay shared" 4
+.IX Item "Variable ""%s"" will not stay shared"
+(W closure) An inner (nested) \fInamed\fR subroutine is referencing a
+lexical variable defined in an outer named subroutine.
+.Sp
+When the inner subroutine is called, it will see the value of
+the outer subroutine's variable as it was before and during the *first*
+call to the outer subroutine; in this case, after the first call to the
+outer subroutine is complete, the inner and outer subroutines will no
+longer share a common value for the variable. In other words, the
+variable will no longer be shared.
+.Sp
+This problem can usually be solved by making the inner subroutine
+anonymous, using the \f(CW\*(C`sub {}\*(C'\fR syntax. When inner anonymous subs that
+reference variables in outer subroutines are created, they
+are automatically rebound to the current values of such variables.
+.IP "vector argument not supported with alpha versions" 4
+.IX Item "vector argument not supported with alpha versions"
+(S printf) The \f(CW%vd\fR (s)printf format does not support version objects
+with alpha parts.
+.IP "Verb pattern '%s' has a mandatory argument in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Verb pattern '%s' has a mandatory argument in regex; marked by <--\ HERE in m/%s/"
+(F) You used a verb pattern that requires an argument. Supply an
+argument or check that you are using the right verb.
+.IP "Verb pattern '%s' may not have an argument in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Verb pattern '%s' may not have an argument in regex; marked by <--\ HERE in m/%s/"
+(F) You used a verb pattern that is not allowed an argument. Remove the
+argument or check that you are using the right verb.
+.IP "Version control conflict marker" 4
+.IX Item "Version control conflict marker"
+(F) The parser found a line starting with \f(CW\*(C`<<<<<<<\*(C'\fR,
+\&\f(CW\*(C`>>>>>>>\*(C'\fR, or \f(CW\*(C`=======\*(C'\fR. These may be left by a
+version control system to mark conflicts after a failed merge operation.
+.IP "Version number must be a constant number" 4
+.IX Item "Version number must be a constant number"
+(P) The attempt to translate a \f(CW\*(C`use Module n.n LIST\*(C'\fR statement into
+its equivalent \f(CW\*(C`BEGIN\*(C'\fR block found an internal inconsistency with
+the version number.
+.IP "Version string '%s' contains invalid data; ignoring: '%s'" 4
+.IX Item "Version string '%s' contains invalid data; ignoring: '%s'"
+(W misc) The version string contains invalid characters at the end, which
+are being ignored.
+.IP "Warning: something's wrong" 4
+.IX Item "Warning: something's wrong"
+(W) You passed \fBwarn()\fR an empty string (the equivalent of \f(CW\*(C`warn ""\*(C'\fR) or
+you called it with no args and \f(CW$@\fR was empty.
+.ie n .IP "Warning: unable to close filehandle %s properly" 4
+.el .IP "Warning: unable to close filehandle \f(CW%s\fR properly" 4
+.IX Item "Warning: unable to close filehandle %s properly"
+(S) The implicit \fBclose()\fR done by an \fBopen()\fR got an error indication on
+the \fBclose()\fR. This usually indicates your file system ran out of disk
+space.
+.ie n .IP "Warning: unable to close filehandle properly: %s" 4
+.el .IP "Warning: unable to close filehandle properly: \f(CW%s\fR" 4
+.IX Item "Warning: unable to close filehandle properly: %s"
+.PD 0
+.ie n .IP "Warning: unable to close filehandle %s properly: %s" 4
+.el .IP "Warning: unable to close filehandle \f(CW%s\fR properly: \f(CW%s\fR" 4
+.IX Item "Warning: unable to close filehandle %s properly: %s"
+.PD
+(S io) There were errors during the implicit \fBclose()\fR done on a filehandle
+when its reference count reached zero while it was still open, e.g.:
+.Sp
+.Vb 4
+\& {
+\& open my $fh, \*(Aq>\*(Aq, $file or die "open: \*(Aq$file\*(Aq: $!\en";
+\& print $fh $data or die "print: $!";
+\& } # implicit close here
+.Ve
+.Sp
+Because various errors may only be detected by \fBclose()\fR (e.g. buffering could
+allow the \f(CW\*(C`print\*(C'\fR in this example to return true even when the disk is full),
+it is dangerous to ignore its result. So when it happens implicitly, perl
+will signal errors by warning.
+.Sp
+\&\fBPrior to version 5.22.0, perl ignored such errors\fR, so the common idiom shown
+above was liable to cause \fBsilent data loss\fR.
+.IP "Warning: Use of ""%s"" without parentheses is ambiguous" 4
+.IX Item "Warning: Use of ""%s"" without parentheses is ambiguous"
+(S ambiguous) You wrote a unary operator followed by something that
+looks like a binary operator that could also have been interpreted as a
+term or unary operator. For instance, if you know that the rand
+function has a default argument of 1.0, and you write
+.Sp
+.Vb 1
+\& rand + 5;
+.Ve
+.Sp
+you may THINK you wrote the same thing as
+.Sp
+.Vb 1
+\& rand() + 5;
+.Ve
+.Sp
+but in actual fact, you got
+.Sp
+.Vb 1
+\& rand(+5);
+.Ve
+.Sp
+So put in parentheses to say what you really mean.
+.IP "when is deprecated" 4
+.IX Item "when is deprecated"
+(D deprecated::smartmatch) \f(CW\*(C`when\*(C'\fR depends on smartmatch, which is
+deprecated. Additionally, it has several special cases that may
+not be immediately obvious, and it will be removed in Perl 5.42.
+See the explanation
+under "Experimental Details on given and when" in perlsyn.
+.ie n .IP "Wide character in %s" 4
+.el .IP "Wide character in \f(CW%s\fR" 4
+.IX Item "Wide character in %s"
+(S utf8) Perl met a wide character (ordinal >255) when it wasn't
+expecting one. This warning is by default on for I/O (like print).
+.Sp
+If this warning does come from I/O, the easiest
+way to quiet it is simply to add the \f(CW\*(C`:utf8\*(C'\fR layer, \fIe.g.\fR,
+\&\f(CW\*(C`binmode\ STDOUT,\ \*(Aq:utf8\*(Aq\*(C'\fR. Another way to turn off the warning is
+to add \f(CW\*(C`no\ warnings\ \*(Aqutf8\*(Aq;\*(C'\fR but that is often closer to
+cheating. In general, you are supposed to explicitly mark the
+filehandle with an encoding, see open and "binmode" in perlfunc.
+.Sp
+If the warning comes from other than I/O, this diagnostic probably
+indicates that incorrect results are being obtained. You should examine
+your code to determine how a wide character is getting to an operation
+that doesn't handle them.
+.ie n .IP "Wide character (U+%X) in %s" 4
+.el .IP "Wide character (U+%X) in \f(CW%s\fR" 4
+.IX Item "Wide character (U+%X) in %s"
+(W locale) While in a single-byte locale (\fIi.e.\fR, a non\-UTF\-8
+one), a multi-byte character was encountered. Perl considers this
+character to be the specified Unicode code point. Combining non\-UTF\-8
+locales and Unicode is dangerous. Almost certainly some characters
+will have two different representations. For example, in the ISO 8859\-7
+(Greek) locale, the code point 0xC3 represents a Capital Gamma. But so
+also does 0x393. This will make string comparisons unreliable.
+.Sp
+You likely need to figure out how this multi-byte character got mixed up
+with your single-byte locale (or perhaps you thought you had a UTF\-8
+locale, but Perl disagrees).
+.IP "Within []\-length '%c' not allowed" 4
+.IX Item "Within []-length '%c' not allowed"
+(F) The count in the (un)pack template may be replaced by \f(CW\*(C`[TEMPLATE]\*(C'\fR
+only if \f(CW\*(C`TEMPLATE\*(C'\fR always matches the same amount of packed bytes that
+can be determined from the template alone. This is not possible if
+it contains any of the codes @, /, U, u, w or a *\-length. Redesign
+the template.
+.ie n .IP "While trying to resolve method call %s\->%s() can not locate package ""%s"" yet it is mentioned in @%s::ISA (perhaps you forgot to load ""%s""?)" 4
+.el .IP "While trying to resolve method call \f(CW%s\fR\->%s() can not locate package ""%s"" yet it is mentioned in @%s::ISA (perhaps you forgot to load ""%s""?)" 4
+.IX Item "While trying to resolve method call %s->%s() can not locate package ""%s"" yet it is mentioned in @%s::ISA (perhaps you forgot to load ""%s""?)"
+(W syntax) It is possible that the \f(CW@ISA\fR contains a misspelled or never loaded
+package name, which can result in perl choosing an unexpected parent
+class's method to resolve the method call. If this is deliberate you
+can do something like
+.Sp
+.Vb 1
+\& @Missing::Package::ISA = ();
+.Ve
+.Sp
+to silence the warnings, otherwise you should correct the package name, or
+ensure that the package is loaded prior to the method call.
+.IP "%s() with negative argument" 4
+.IX Item "%s() with negative argument"
+(S misc) Certain operations make no sense with negative arguments.
+Warning is given and the operation is not done.
+.ie n .IP "\fBwrite()\fR on closed filehandle %s" 4
+.el .IP "\fBwrite()\fR on closed filehandle \f(CW%s\fR" 4
+.IX Item "write() on closed filehandle %s"
+(W closed) The filehandle you're writing to got itself closed sometime
+before now. Check your control flow.
+.ie n .IP "%s ""\ex%X"" does not map to Unicode" 4
+.el .IP "\f(CW%s\fR ""\ex%X"" does not map to Unicode" 4
+.IX Item "%s ""x%X"" does not map to Unicode"
+(S utf8) When reading in different encodings, Perl tries to
+map everything into Unicode characters. The bytes you read
+in are not legal in this encoding. For example
+.Sp
+.Vb 1
+\& utf8 "\exE4" does not map to Unicode
+.Ve
+.Sp
+if you try to read in the a\-diaereses Latin\-1 as UTF\-8.
+.IP "'X' outside of string" 4
+.IX Item "'X' outside of string"
+(F) You had a (un)pack template that specified a relative position before
+the beginning of the string being (un)packed. See "pack" in perlfunc.
+.IP "'x' outside of string in unpack" 4
+.IX Item "'x' outside of string in unpack"
+(F) You had an unpack template that specified a relative position after
+the end of the string being unpacked. See "pack" in perlfunc.
+.IP "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!" 4
+.IX Item "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!"
+(F) And you probably never will, because you probably don't have the
+sources to your kernel, and your vendor probably doesn't give a rip
+about what you want. There is a vulnerability anywhere that you have a
+set-id script, and to close it you need to remove the set-id bit from
+the script that you're attempting to run. To actually run the script
+set-id, your best bet is to put a set-id C wrapper around your script.
+.IP "You need to quote ""%s""" 4
+.IX Item "You need to quote ""%s"""
+(W syntax) You assigned a bareword as a signal handler name.
+Unfortunately, you already have a subroutine of that name declared,
+which means that Perl 5 will try to call the subroutine when the
+assignment is executed, which is probably not what you want. (If it IS
+what you want, put an & in front.)
+.IP "Your random numbers are not that random" 4
+.IX Item "Your random numbers are not that random"
+(F) When trying to initialize the random seed for hashes, Perl could
+not get any randomness out of your system. This usually indicates
+Something Very Wrong.
+.IP "Zero length \eN{} in regex; marked by <\-\-\ HERE in m/%s/" 4
+.IX Item "Zero length N{} in regex; marked by <--\ HERE in m/%s/"
+(F) Named Unicode character escapes (\f(CW\*(C`\eN{...}\*(C'\fR) may return a zero-length
+sequence. Such an escape was used in an extended character class, i.e.
+\&\f(CW\*(C`(?[...])\*(C'\fR, or under \f(CW\*(C`use re \*(Aqstrict\*(Aq\*(C'\fR, which is not permitted. Check
+that the correct escape has been used, and the correct charnames handler
+is in scope. The <\-\-\ HERE shows whereabouts in the regular
+expression the problem was discovered.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+warnings, diagnostics.