issued on exit from the C<default> block, so you won't get the
error if you use an explicit C<continue>.)
+=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.
+
=item Can't do inplace edit: %s is not a regular file
(S inplace) You tried to use the B<-i> switch on a special file, such as
Perl. The current valid ones are given in
L<perlrebackslash/\b{}, \b, \B{}, \B>.
-=item %s() is deprecated on :utf8 handles
+=item %s() is deprecated on :utf8 handles. This will be a fatal error in Perl 5.30
(D deprecated) The sysread(), recv(), syswrite() and send() operators are
deprecated on handles that have the C<:utf8> layer, either explicitly, or
Ideally, all of these operators would completely ignore the C<:utf8> state,
working only with bytes, but this would result in silently breaking existing
-code. To avoid this a future version of perl will throw an exception when
-any of sysread(), recv(), syswrite() or send() are called on handle with the
-C<:utf8> layer.
+code.
+
+In Perl 5.30, it will no longer be possible to use sysread(), recv(),
+syswrite() or send() to read or send bytes from/to :utf8 handles.
=item "%s" is more clearly written simply as "%s" in regex. This will be a fatal error in Perl 5.28; marked by S<<-- HERE> in m/%s/
and which is also portable to platforms running with different character
sets. This usage is deprecated, and will be a fatal error in Perl 5.28.
+=item $* is no longer supported. Its use will be fatal in Perl 5.30
+
+(D deprecated, syntax) The special variable C<$*>, deprecated in older
+perls, has been removed as of 5.10.0 and is no longer supported. In
+previous versions of perl the use of C<$*> enabled or disabled multi-line
+matching within a string.
+
+Instead of using C<$*> you should use the C</m> (and maybe C</s>) regexp
+modifiers. You can enable C</m> for a lexical scope (even a whole file)
+with C<use re '/m'>. (In older versions: when C<$*> was set to a true value
+then all regular expressions behaved as if they were written using C</m>.)
+
+Use of this variable will be a fatal error in Perl 5.30.
+
+=item $# is no longer supported. Its use will be fatal in Perl 5.30
+
+(D deprecated, syntax) The special variable C<$#>, deprecated in older
+perls, has been removed as of 5.10.0 and is no longer supported. You
+should use the printf/sprintf functions instead.
+
+Use of this variable will be a fatal error in Perl 5.30.
+
=item '%s' is not a code reference
(W overload) The second (fourth, sixth, ...) argument of
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 Encode::decode_utf8.
+8-bit data). To guard against this, you can use C<Encode::decode('UTF-8', ...)>.
If you use the C<:encoding(UTF-8)> PerlIO layer for input, invalid byte
sequences are handled gracefully, but if you use C<:utf8>, the flag is
(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. Inconveniently,
-this error will be reported at the location of the subroutine, not that
-of the caller.
+The caller of the subroutine is presumably at fault.
=item Odd number of arguments for overload::constant
operator. Since C<split> always tries to match the pattern
repeatedly, the C</g> has no effect.
-=item Use of "goto" to jump into a construct is deprecated. Its use will be fatal in Perl 5.28
+=item Use of "goto" to jump into a construct is deprecated
(D deprecated) Using C<goto> to jump from an outer scope into an inner
scope is deprecated and should be avoided.
-This was deprecated in Perl 5.12, and will be a fatal error in Perl 5.28.
+This was deprecated in Perl 5.12.
=item Use of inherited AUTOLOAD for non-method %s() is deprecated. This will be fatal in Perl 5.28
See the explanation under L<perlvar/$_>.
=item Use of strings with code points over 0xFF as arguments to %s
-operator is deprecated
+operator is deprecated. This will be a fatal error in Perl 5.28
(D deprecated) You tried to use one of the string bitwise operators
(C<&> or C<|> or C<^> or C<~>) 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.
+Such usage will be a fatal error in Perl 5.28.
+
=item Use of tainted arguments in %s is deprecated
(W taint, deprecated) You have supplied C<system()> or C<exec()> with multiple
arguments. See L<perlsec>.
=item Use of unassigned code point or non-standalone grapheme for a
-delimiter will be a fatal error starting in Perl v5.30
+delimiter will be a fatal error starting in Perl 5.30
(D deprecated)
A grapheme is what appears to a native-speaker of a language to be a