to be an object method (see L<perlsub/"Subroutine Attributes"> or
L<attributes>).
+=item Ambiguous range in transliteration operator
+
+(F) You wrote something like C<tr/a-z-0//> which doesn't mean anything at
+all. To include a C<-> character in a transliteration, put it either
+first or last. (In the past, C<tr/a-z-0//> was synonymous with
+C<tr/a-y//>, which was probably not what you would have expected.)
+
=item Ambiguous use of %s resolved as %s
(W ambiguous)(S) You said something that may not be interpreted the way
(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.
+setting environment variable C<PERL_BADFREE> to 0.
-This message can be quite often seen with DB_File on systems with "hard"
+This message can be seen quite often 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().
functioning as a class, but that package doesn't define that particular
method, nor does any of its base classes. See L<perlobj>.
+=item (perhaps you forgot to load "%s"?)
+
+(F) This is an educated guess made in conjunction with the message
+"Can't locate object method \"%s\" via package \"%s\"". It often means
+that a method requires a package that has not been loaded.
+
=item Can't locate package %s for @%s::ISA
(W syntax) The @ISA array contained the name of another package that
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.
+extensions and will cause fatal errors.
=item Character class syntax [. .] is reserved for future extensions
-(W regexp) Within regular expression character classes ([]) the syntax
+(F 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 ".\]".
+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
+(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: "\[=" and "=\]".
+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 [:%s:] unknown
equivalent to 01411. Octal constants are introduced with a leading 0 in
Perl, as in C.
-=item Close on unopened file <%s>
+=item Close on unopened file %s
(W unopened) You tried to close a filehandle that was never opened.
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
+that it is simpler or backtracks less. (See L<perlfaq2> for information
on I<Mastering Regular Expressions>.)
=item connect() on closed socket %s
(F) The range specified in a character class had a minimum character
greater than the maximum character. See L<perlre>.
+=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 L<perlop>.
+
=item Invalid separator character %s in attribute list
(F) Something other than a colon or whitespace was seen between the
with nonempty prefix1 and prefix2. If C<prefix1> 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 F<README.os2>.
+"PERLLIB_PREFIX" in L<perlos2>.
+
+=item Malformed UTF-16 surrogate
+
+Perl thought it was reading UTF-16 encoded character data but while
+doing it Perl met a malformed Unicode surrogate.
=item %s matches null string many times
(P) The lexer got into a bad state while processing a case modifier.
+=item panic: utf16_to_utf8: odd bytelen
+
+(P) Something tried to call utf16_to_utf8 with an odd (as opposed
+to even) byte length.
+
=item Parentheses missing around "%s" list
(W parenthesis) You said something like
=item PERL_SH_DIR too long
(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
-C<sh>-shell in. See "PERL_SH_DIR" in F<README.os2>.
+C<sh>-shell in. See "PERL_SH_DIR" in L<perlos2>.
=item perl: warning: Setting locale failed.
applications die in silence. It is considered a feature of the OS/2
port. One can easily disable this by appropriate sighandlers, see
L<perlipc/"Signals">. See also "Process terminated by SIGTERM/SIGINT"
-in F<README.os2>.
+in L<perlos2>.
=item Prototype mismatch: %s vs %s
instead, which does return. To suppress this warning, put the exec() in
a block by itself.
-=item Stat on unopened file <%s>
+=item Stat on unopened file %s
(W unopened) You tried to use the stat() function (or an equivalent file
test) on a filehandle that was either never opened or has since been
(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>
+=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>.
of Perl executables, some of which may support fork, some not. Try
changing the name you call Perl by to C<perl_>, C<perl__>, and so on.
+=item Unsupported script encoding
+
+(F) Your program file begins with a Unicode Byte Order Mark (BOM) which
+declares it to be in a Unicode encoding that Perl cannot yet read.
+
=item Unsupported socket function "%s" called
(F) Your machine doesn't support the Berkeley socket mechanism, or at
character was not found. You may need to add (or remove) a backslash
character to get your parentheses to balance. See L<attributes>.
+=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 L<perlfunc/pack>.
+
=item Unterminated <> operator
(F) The lexer saw a left angle bracket in a place where it was expecting