(X) A very fatal error (nontrappable).
(A) An alien error message (not generated by Perl).
-The majority of messages from the first three classifications above (W,
-D & S) can be controlled using the C<warnings> pragma.
+The majority of messages from the first three classifications above
+(W, D & S) can be controlled using the C<warnings> pragma.
If a message can be controlled by the C<warnings> pragma, its warning
category is included with the classification letter in the description
=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 socket() call? See L<perlfunc/accept>.
+(W closed) You tried to do an accept on a closed socket. Did you forget to
+check the return value of your socket() call? See L<perlfunc/accept>.
=item Allocation too large: %lx
=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.
+(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.
To force interpretation as a subroutine call, either put an ampersand
before the subroutine name, or qualify the name with its package.
=item Applying %s to %s will act on scalar(%s)
-(W misc) The pattern match (//), substitution (s///), and transliteration (tr///)
-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
-L<perlfunc/grep> and L<perlfunc/map> for alternatives.
+(W misc) The pattern match (//), substitution (s///), and transliteration
+(tr///) 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 L<perlfunc/grep> and
+L<perlfunc/map> for alternatives.
=item Args must match #! line
=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.
+expected a numeric value instead. If you're fortunate the message will
+identify which operator was so unfortunate.
=item Array @%s missing the @ in argument %d of %s()
-(D deprecated) Really old Perl let you omit the @ on array names in some spots. This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the @ on array names in some
+spots. This is now heavily deprecated.
=item assertion botched: %s
=item Attempt to free non-arena SV: 0x%lx
(P 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.
+be garbage collected on exit. An SV was discovered to be outside any of those
+arenas.
=item Attempt to free nonexistent shared string
(P 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.
+indicates someone tried to decrement the reference count of a string that can
+no longer be found in the table.
=item Attempt to free temp prematurely
(W debugging) Mortalized values are supposed to be freed by the free_tmps()
-routine. This indicates that something else is freeing the SV before
-the free_tmps() routine gets a chance, which means that the free_tmps()
-routine will be freeing an unreferenced scalar when it does try to free
-it.
+routine. This indicates that something else is freeing the SV before the
+free_tmps() routine gets a chance, which means that the free_tmps() routine
+will be freeing an unreferenced scalar when it does try to free it.
=item Attempt to free unreferenced glob pointers
=item Attempt to free unreferenced scalar
-(W 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 SvREFCNT_dec() was called too many times, or that
-SvREFCNT_inc() was called too few times, or that the SV was mortalized
-when it shouldn't have been, or that memory has been corrupted.
+(W 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 SvREFCNT_dec() was called too many times, or that SvREFCNT_inc() was
+called too few times, or that the SV was mortalized when it shouldn't have
+been, or that memory has been corrupted.
=item Attempt to join self
=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" pack() 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" pack() template to
-avoid this warning.
+(W pack) You tried to pass a temporary value (like the result of a function,
+or a computed expression) to the "p" pack() 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" pack() template to avoid this warning.
=item Attempt to use reference as lvalue in substr
-(W substr) You supplied a reference as the first argument to substr() used
-as an lvalue, which is pretty strange. Perhaps you forgot to
-dereference it first. See L<perlfunc/substr>.
+(W substr) You supplied a reference as the first argument to substr() used as
+an lvalue, which is pretty strange. Perhaps you forgot to dereference it
+first. See L<perlfunc/substr>.
=item Bad arg length for %s, is %d, should be %d
=item Bad free() ignored
(S malloc) An internal routine called free() on something that had never been
-malloc()ed in the first place. Mandatory, but can be disabled by
-setting environment variable C<PERL_BADFREE> to 1.
+malloc()ed in the first place. Mandatory, but can be disabled by setting
+environment variable C<PERL_BADFREE> to 1.
-This message can be quite often seen with DB_File on systems with
-"hard" dynamic linking, like C<AIX> and C<OS/2>. It is a bug of
-C<Berkeley DB> which is left unnoticed if C<DB> uses I<forgiving>
-system malloc().
+This message can be quite often seen with DB_File on systems with "hard"
+dynamic linking, like C<AIX> and C<OS/2>. It is a bug of C<Berkeley DB> which
+is left unnoticed if C<DB> uses I<forgiving> system malloc().
=item Bad hash
=item Bad realloc() ignored
-(S malloc) An internal routine called realloc() on something that had never been
-malloc()ed in the first place. Mandatory, but can be disabled by
-setting environment variable C<PERL_BADFREE> to 1.
+(S malloc) An internal routine called realloc() on something that had never
+been malloc()ed in the first place. Mandatory, but can be disabled by setting
+environment variable C<PERL_BADFREE> to 1.
=item Bad symbol for array
=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:
+which often indicates that an || or && was parsed as part of the last argument
+of the previous construct, for example:
open FOO || die;
=item \1 better written as $1
(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.
+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.
=item Binary number > 0b11111111111111111111111111111111 non-portable
=item Buffer overflow in prime_env_iter: %s
-(W internal) A warning peculiar to VMS. While Perl was preparing to iterate over
-%ENV, it encountered a logical name or symbol definition which was too long,
-so it was truncated to the string shown.
+(W internal) A warning peculiar to VMS. While Perl was preparing to iterate
+over %ENV, it encountered a logical name or symbol definition which was too
+long, so it was truncated to the string shown.
=item Callback called exit
=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
+(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 L<perlsub>.
+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 L<perlsub>.
=item / cannot take a count
=item Can't break at that line
-(S internal) A warning intended to only be printed while running within the debugger, indicating
-the line number specified wasn't the location of a statement that could
-be stopped at.
+(S internal) A warning intended to only be printed while running within the
+debugger, indicating the line number specified wasn't the location of a
+statement that could be stopped at.
=item Can't call method "%s" in empty package "%s"
(W exec) An system(), exec(), 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 C<$ENV{PATH}>, 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.)
+were wrong on the file, the file wasn't found in C<$ENV{PATH}>, 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.)
=item Can't exec %s
=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.
+(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.
=item Can't "last" outside a loop block
=item Can't locate package %s for @%s::ISA
-(W syntax) The @ISA array contained the name of another package that doesn't seem
-to exist.
+(W syntax) The @ISA array contained the name of another package that doesn't
+seem to exist.
=item Can't make list assignment to \%ENV on this system
=item Can't open bidirectional pipe
-(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported. You can
-try any of several modules in the Perl library to do this, such as
-IPC::Open2. Alternately, direct the pipe's output to a file using ">",
-and then read it in under a different file handle.
+(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported. You
+can try any of several modules in the Perl library to do this, such as
+IPC::Open2. Alternately, direct the pipe's output to a file using ">", and
+then read it in under a different file handle.
=item Can't open error file %s as stderr
=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 SCALAR(0xdecaf). Use the $1 form instead.
+(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 SCALAR(0xdecaf). Use the $1 form instead.
=item Can't weaken a nonreference
=item Character class syntax [%s] belongs inside character classes
(W unsafe) The character class constructs [: :], [= =], and [. .] go
-I<inside> character classes, the [] are part of the construct,
-for example: /[012[:alpha:]345]/. Note that [= =] and [. .]
-are not currently implemented; they are simply placeholders for
-future extensions.
+I<inside> character classes, the [] are part of the construct, for example:
+/[012[:alpha:]345]/. Note that [= =] and [. .] are not currently implemented;
+they are simply placeholders for future extensions.
=item Character class syntax [. .] is reserved for future extensions
-(W regexp) 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: "\[." and ".\]".
+(W regexp) 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: "\[." and
+".\]".
=item Character class syntax [= =] is reserved for future extensions
(W regexp) 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: "\[=" and "=\]".
+If you need to represent those character sequences inside a regular expression
+character class, just quote the square brackets with the backslash: "\[=" and
+"=\]".
=item Character class [:%s:] unknown
=item Complex regular subexpression recursion limit (%d) exceeded
(W regexp) The regular expression engine uses recursion in complex situations
-where back-tracking is required. Recursion depth is limited to 32766,
-or perhaps less in architectures where the stack cannot grow
-arbitrarily. ("Simple" and "medium" situations are handled without
-recursion and are not subject to a limit.) Try shortening the string
-under examination; looping in Perl code (e.g. with C<while>) rather
-than in the regular expression engine; or rewriting the regular
-expression so that it is simpler or backtracks less. (See L<perlbook>
-for information on I<Mastering Regular Expressions>.)
+where back-tracking is required. Recursion depth is limited to 32766, or
+perhaps less in architectures where the stack cannot grow arbitrarily.
+("Simple" and "medium" situations are handled without recursion and are not
+subject to a limit.) Try shortening the string under examination; looping in
+Perl code (e.g. with C<while>) rather than in the regular expression engine;
+or rewriting the regular expression so that it is simpler or backtracks less.
+(See L<perlbook> for information on I<Mastering Regular Expressions>.)
=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 socket() call? See L<perlfunc/connect>.
+(W closed) You tried to do a connect on a closed socket. Did you forget to
+check the return value of your socket() call? See L<perlfunc/connect>.
=item constant(%s): %s
=item Constant subroutine %s undefined
(W misc) You undefined a subroutine which had previously been eligible for
-inlining. See L<perlsub/"Constant Functions"> for commentary and
-workarounds.
+inlining. See L<perlsub/"Constant Functions"> for commentary and workarounds.
=item Copy method did not return a reference
(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.
+recursion, unless you're writing strange benchmark programs, in which case it
+indicates something else.
=item defined(@array) is deprecated
=item Exiting eval via %s
-(W exiting) You are exiting an eval by unconventional means, such as
-a goto, or a loop control statement.
+(W exiting) You are exiting an eval by unconventional means, such as a goto,
+or a loop control statement.
=item Exiting format via %s
-(W exiting) You are exiting an eval by unconventional means, such as
-a goto, or a loop control statement.
+(W exiting) You are exiting an eval by unconventional means, such as a goto,
+or a loop control statement.
=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 L<perlfunc/sort>.
+(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 L<perlfunc/sort>.
=item Exiting subroutine via %s
-(W exiting) You are exiting a subroutine by unconventional means, such as
-a goto, or a loop control statement.
+(W exiting) You are exiting a subroutine by unconventional means, such as a
+goto, or a loop control statement.
=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.
+(W exiting) You are exiting a substitution by unconventional means, such as a
+return, a goto, or a loop control statement.
=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, $p || 'MyPackage');
+(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,
+$p || 'MyPackage');
=item %s: Expression syntax
=item false [] range "%s" in regexp
-(W regexp) A character class range must start and end at a literal character, not
-another character class like C<\d> or C<[:alpha:]>. The "-" in your false
-range is interpreted as a literal "-". Consider quoting the "-", "\-".
-See L<perlre>.
+(W regexp) A character class range must start and end at a literal character,
+not another character class like C<\d> or C<[:alpha:]>. The "-" in your false
+range is interpreted as a literal "-". Consider quoting the "-", "\-". See
+L<perlre>.
=item Fatal VMS error at %s, line %d
=item Filehandle %s never opened
-(W unopened) An I/O operation was attempted on a filehandle that was never initialized.
-You need to do an open() or a socket() call, or call a constructor from
-the FileHandle package.
+(W unopened) An I/O operation was attempted on a filehandle that was never
+initialized. You need to do an open() or a socket() call, or call a
+constructor from the FileHandle package.
=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
-L<perlfunc/open>.
+(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 L<perlfunc/open>.
=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 "<" or nothing. If
-you intended only to read from the file, use "<". See
-L<perlfunc/open>.
+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 read
+from the file, use "<". See L<perlfunc/open>.
=item Final $ should be \$ or $name
=item glob failed (%s)
(W glob) Something went wrong with the external program(s) used for C<glob>
-and C<< <*.c> >>. Usually, this means that you supplied a C<glob>
-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.
-C<full_csh='/usr/bin/tcsh'>); otherwise, make them all empty (except that
-C<d_csh> should be C<'undef'>) so that Perl will think csh is missing.
-In either case, after editing config.sh, run C<./Configure -S> and
-rebuild Perl.
+and C<< <*.c> >>. Usually, this means that you supplied a C<glob> 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. C<full_csh='/usr/bin/tcsh'>); otherwise,
+make them all empty (except that C<d_csh> should be C<'undef'>) so that Perl
+will think csh is missing. In either case, after editing config.sh, run
+C<./Configure -S> and rebuild Perl.
=item Glob not terminated
=item Hash %%s missing the % in argument %d of %s()
-(D deprecated) Really old Perl let you omit the % on hash names in some spots. This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the % on hash names in some spots.
+This is now heavily deprecated.
=item %s has too many errors
=item Illegal binary digit %s ignored
-(W digit) You may have tried to use a digit other than 0 or 1 in a binary number.
-Interpretation of the binary number stopped before the offending digit.
+(W digit) You may have tried to use a digit other than 0 or 1 in a binary
+number. Interpretation of the binary number stopped before the offending
+digit.
=item Illegal character %s (carriage return)
=item Illegal hexadecimal digit %s ignored
-(W digit) You may have tried to use a character other than 0 - 9 or A - F, a - f
-in a hexadecimal number. Interpretation of the hexadecimal number stopped
-before the illegal character.
+(W digit) You may have tried to use a character other than 0 - 9 or A - F,
+a - f in a hexadecimal number. Interpretation of the hexadecimal number
+stopped before the illegal character.
=item Illegal modulus zero
=item Illegal octal digit %s ignored
-(W digit) You may have tried to use an 8 or 9 in a octal number. Interpretation
-of the octal number stopped before the 8 or 9.
+(W digit) You may have tried to use an 8 or 9 in a octal number.
+Interpretation of the octal number stopped before the 8 or 9.
=item Illegal switch in PERL5OPT: %s
=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 C<=> delimiter
+(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's
+internal environ array, and encountered an element without the C<=> delimiter
used to separate keys from values. The element is ignored.
=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 %ENV, and
-didn't see the expected delimiter between key and value, so the
-line was ignored.
+(W internal) A warning peculiar to VMS. Perl tried to read a logical name or
+CLI symbol definition when preparing to iterate over %ENV, and didn't see the
+expected delimiter between key and value, so the line was ignored.
=item (in cleanup) %s
-(W misc) This prefix usually indicates that a DESTROY() 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.
+(W misc) This prefix usually indicates that a DESTROY() 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.
-Failure of user callbacks dispatched using the C<G_KEEPERR> flag
-could also result in this warning. See L<perlcall/G_KEEPERR>.
+Failure of user callbacks dispatched using the C<G_KEEPERR> flag could also
+result in this warning. See L<perlcall/G_KEEPERR>.
=item Insecure dependency in %s
=item Integer overflow in %s number
-(W overflow) The hexadecimal, octal or binary number you have specified either
-as a literal or as an argument to hex() or oct() is too big for your
+(W overflow) The hexadecimal, octal or binary number you have specified
+either as a literal or as an argument to hex() or oct() 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
=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 L<perlop/Terms and List Operators (Leftward)>.
+(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 L<perlop/Terms and List Operators
+(Leftward)>.
=item Invalid %s attribute: %s
=item Invalid type in unpack: '%s'
(F) The given character is not a valid unpack type. See L<perlfunc/unpack>.
-(W unpack) The given character is not a valid unpack type but used to be silently
-ignored.
+(W unpack) The given character is not a valid unpack type but used to be
+silently ignored.
=item ioctl is not implemented
=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 socket() call? See L<perlfunc/listen>.
+(W closed) You tried to do a listen on a closed socket. Did you forget to
+check the return value of your socket() call? See L<perlfunc/listen>.
=item Lvalue subs returning %s not implemented yet
=item Multidimensional syntax %s not supported
-(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>. They're written
-like C<$foo[1][2][3]>, as in C.
+(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>.
+They're written like C<$foo[1][2][3]>, as in C.
=item / must be followed by a*, A* or Z*
=item No such signal: SIG%s
-(W signal) You specified a signal name as a subscript to %SIG that was not recognized.
-Say C<kill -l> in your shell to see the valid signal names on your system.
+(W signal) You specified a signal name as a subscript to %SIG that was not
+recognized. Say C<kill -l> in your shell to see the valid signal names on
+your system.
=item Not a CODE reference
=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 L<perlport> for more
-on portability concerns.
+(W portable) The octal number you specified is larger than 2**32-1
+(4294967295) and therefore non-portable between systems. See L<perlport> for
+more on portability concerns.
See also L<perlport> for writing portable code.
=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.
+(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 L<attributes>.
=item page overflow
Remember that "my", "our", and "local" bind tighter than comma.
-=item Perl %3.3f required--this is only version %s, stopped
+=item Perl %s required--this is only version %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,
=item pid %x not a child
-(W exec) A warning peculiar to VMS. Waitpid() was asked to wait for a process which
-isn't a subprocess of the current process. While this is fine from VMS'
+(W exec) A warning peculiar to VMS. Waitpid() 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.
=item POSIX getpgrp can't take an argument
=item Possible attempt to put comments in qw() list
(W qw) qw() 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.)
+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.)
You probably wrote something like this:
=item printf() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime before
+now. Check your logic flow.
=item print() on closed filehandle %s
-(W closed) The filehandle you're printing on got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're printing on got itself closed sometime before
+now. Check your logic flow.
=item Process terminated by SIG%s
=item readline() on closed filehandle %s
-(W closed) The filehandle you're reading from got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're reading from got itself closed sometime
+before now. Check your logic flow.
=item Reallocation too large: %lx
=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 C<$foo[&bar]> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo[&bar]> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
+(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 C<$foo[&bar]> always behaves like a
+scalar, both when assigning to it and when evaluating its argument, while
+C<@foo[&bar]> behaves like a list when you assign to it, and provides a list
+context to its subscript, which can do weird things if you're expecting only
+one subscript.
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
=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 C<$foo{&bar}> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo{&bar}> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
+(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 C<$foo{&bar}> always behaves like a scalar,
+both when assigning to it and when evaluating its argument, while
+C<@foo{&bar}> behaves like a list when you assign to it, and provides a list
+context to its subscript, which can do weird things if you're expecting only
+one subscript.
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
=item %sseek() on unopened file
-(W unopened) You tried to use the seek() or sysseek() function on a filehandle that
-was either never opened or has since been closed.
+(W unopened) You tried to use the seek() or sysseek() function on a filehandle
+that was either never opened or has since been closed.
=item select not implemented
=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.
+(W semicolon) A nearby syntax error was probably caused by a missing
+semicolon, or possibly some other missing operator, such as a comma.
=item semi-panic: attempt to dup freed string
=item shutdown() on closed socket %s
-(W closed) You tried to do a shutdown on a closed socket. Seems a bit superfluous.
+(W closed) You tried to do a shutdown on a closed socket. Seems a bit
+superfluous.
=item SIG%s handler "%s" not defined
-(W signal) The signal handler named in %SIG doesn't, in fact, exist. Perhaps you
-put it into the wrong package?
+(W signal) The signal handler named in %SIG doesn't, in fact, exist. Perhaps
+you put it into the wrong package?
=item sort is now a reserved word
=item Strange *+?{} on zero-length expression
(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 C</abc(?=(?:xyz){3})/>, not C</abc(?=xyz){3}/>.
+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 C</abc(?=(?:xyz){3})/>,
+not C</abc(?=xyz){3}/>.
=item Stub found while resolving method `%s' overloading `%s' in package `%s'
=item substr outside of string
(W substr),(F) You tried to reference a substr() that pointed outside of a
-string. That is, the absolute value of the offset was larger than the
-length of the string. See L<perlfunc/substr>. 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).
+string. That is, the absolute value of the offset was larger than the length
+of the string. See L<perlfunc/substr>. 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).
=item suidperl is no longer needed since %s
=item syswrite() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime before
+now. Check your logic flow.
=item Target of goto is too deeply nested
=item tell() on unopened file
-(W unopened) You tried to use the tell() function on a filehandle that was either
-never opened or has since been closed.
+(W unopened) You tried to use the tell() function on a filehandle that was
+either never opened or has since been closed.
=item Test on unopened file <%s>
-(W unopened) You tried to invoke a file test operator on a filehandle that isn't
-open. Check your logic. See also L<perlfunc/-X>.
+(W unopened) You tried to invoke a file test operator on a filehandle that
+isn't open. Check your logic. See also L<perlfunc/-X>.
=item That use of $[ is unsupported
=item This Perl can't set CRTL environ elements (%s=%s)
-(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
+(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 setenv() function. You'll need to
rebuild Perl with a CRTL that does, or redefine F<PERL_ENV_TABLES> (see
L<perlvms>) so that the environ array isn't the target of the change to
=item Unbalanced context: %d more PUSHes than POPs
-(W internal) The exit code detected an internal inconsistency in how many execution
-contexts were entered and left.
+(W internal) The exit code detected an internal inconsistency in how many
+execution contexts were entered and left.
=item Unbalanced saves: %d more saves than restores
=item Unbalanced scopes: %d more ENTERs than LEAVEs
-(W internal) The exit code detected an internal inconsistency in how many blocks
-were entered and left.
+(W internal) The exit code detected an internal inconsistency in how many
+blocks were entered and left.
=item Unbalanced tmps: %d more allocs than frees
-(W internal) The exit code detected an internal inconsistency in how many mortal
-scalars were allocated and freed.
+(W internal) The exit code detected an internal inconsistency in how many
+mortal scalars were allocated and freed.
=item Undefined format "%s" called
=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.
+(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.
=item Unrecognized character %s
=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
+(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
$one, $two = 1, 2;
to be autoloaded were called as plain functions (e.g. C<Foo::bar()>),
not as methods (e.g. C<< Foo->bar() >> or C<< $obj->bar() >>).
-This bug will be rectified in Perl 5.005, which will use method lookup
-only for methods' C<AUTOLOAD>s. However, there is a significant base
-of existing code that may be using the old behavior. So, as an
-interim step, Perl 5.004 issues an optional warning when non-methods
-use inherited C<AUTOLOAD>s.
+This bug will be rectified in future by using method lookup only for methods'
+C<AUTOLOAD>s. However, there is a significant base of existing code that may
+be using the old behavior. So, as an interim step, Perl currently issues an
+optional warning when non-methods use inherited C<AUTOLOAD>s.
The simple rule is: Inheritance will not work when autoloading
non-methods. The simple fix for old code is: In any module that used to
=item Use of $* is deprecated
-(D deprecated) This variable magically turned on multi-line pattern matching, both for
-you and for any luckless subroutine that you happen to call. You should
-use the new C<//m> and C<//s> modifiers now to do that without the dangerous
-action-at-a-distance effects of C<$*>.
+(D deprecated) This variable magically turned on multi-line pattern matching,
+both for you and for any luckless subroutine that you happen to call. You
+should use the new C<//m> and C<//s> modifiers now to do that without the
+dangerous action-at-a-distance effects of C<$*>.
=item Use of %s is deprecated
-(D deprecated) The construct indicated is no longer recommended for use, generally
-because there's a better way to do it, and also because the old way has
-bad side effects.
+(D deprecated) The construct indicated is no longer recommended for use,
+generally because there's a better way to do it, and also because the old way
+has bad side effects.
=item Use of $# is deprecated
-(D deprecated) This was an ill-advised attempt to emulate a poorly defined B<awk> feature.
-Use an explicit printf() or sprintf() instead.
+(D deprecated) This was an ill-advised attempt to emulate a poorly defined
+B<awk> feature. Use an explicit printf() or sprintf() instead.
=item Use of reserved word "%s" is deprecated
-(D deprecated) The indicated bareword is a reserved word. Future versions of perl
-may use it as a keyword, so you're better off either explicitly quoting
-the word in a manner appropriate for its context of use, or using a
-different name altogether. The warning can be suppressed for subroutine
-names by either adding a C<&> prefix, or using a package qualifier,
-e.g. C<&our()>, or C<Foo::our()>.
+(D deprecated) The indicated bareword is a reserved word. Future versions of
+perl may use it as a keyword, so you're better off either explicitly quoting
+the word in a manner appropriate for its context of use, or using a different
+name altogether. The warning can be suppressed for subroutine names by either
+adding a C<&> prefix, or using a package qualifier, e.g. C<&our()>, or
+C<Foo::our()>.
=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.
+(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.
=item Value of %s can be "0"; test with defined()
-(W misc) In a conditional expression, you used <HANDLE>, <*> (glob), C<each()>,
-or C<readdir()> 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
+(W misc) In a conditional expression, you used <HANDLE>, <*> (glob),
+C<each()>, or C<readdir()> 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 C<defined> operator.
=item Value of CLI symbol "%s" too long
(W misc) A warning peculiar to VMS. Perl tried to read the value of an %ENV
-element from a CLI symbol table, and found a resultant string longer
-than 1024 characters. The return value has been truncated to 1024
-characters.
+element from a CLI symbol table, and found a resultant string longer than 1024
+characters. The return value has been truncated to 1024 characters.
=item Variable "%s" is not imported%s
=item "%s" variable %s masks earlier declaration in same %s
-(W misc) A "my" or "our" 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 referents to it are
-destroyed.
+(W misc) A "my" or "our" 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 referents to it
+are destroyed.
=item Variable "%s" may be unavailable
=item write() on closed filehandle %s
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime before
+now. Check your logic flow.
=item X outside of string
=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
+(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.)