with an assignment operator, which implies modifying the value itself.
Perhaps you need to copy the value to a temporary, and repeat that.
-=item Character following "\c" must be ASCII
+=item Character following "\c" must be printable ASCII
-(F)(D deprecated, syntax) In C<\cI<X>>, I<X> must be an ASCII character.
-It is planned to make this fatal in all instances in Perl v5.20. In
+(F)(D deprecated, syntax) In C<\cI<X>>, I<X> must be a printable
+(non-control) ASCII character. This is fatal starting in v5.20 for
+non-ASCII characters, and it is planned to make this fatal in all
+instances in Perl v5.22. In
the cases where it isn't fatal, the character this evaluates to is
derived by exclusive or'ing the code point of this character with 0x40.
-Note that non-alphabetic ASCII characters are discouraged here as well,
-and using non-printable ones will be deprecated starting in v5.18.
+Note that ASCII characters that don't map to control characters are
+discouraged here as well, and will generate the warning (when enabled)
+L</""\c%c" is more clearly written simply as "%s"">.
=item Character in 'C' format wrapped in pack
=item %s: Command not found
(A) You've accidentally run your script through B<csh> or another shell
-shell instead of Perl. Check the #! line, or manually feed your script
+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
#!/usr/bin/perl -w
(F) The parser found inconsistencies while attempting to define an
overloaded constant. Perhaps you forgot to load the corresponding
-L<overload> pragma?.
+L<overload> pragma?
=item Constant is not %s reference
(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 C<our>
-declaration is provided for this purpose.
+declaration is also provided for this purpose.
-NOTE: This warning detects symbols that have been used only once
-so $c, @c, %c, *c, &c, sub c{}, c(), and c (the filehandle or
+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 $c, @c, %c, as well
+as *c, &c, sub c{}, c(), and c (the filehandle or
format) are considered the same; if a program uses $c only once
but also uses any of the others it will not trigger this warning.
Symbols beginning with an underscore and symbols using special
if you wish to slurp the file. In future versions of Perl assigning
a reference to will throw a fatal error.
-=item Setting $/ to a %s reference is forbidden
+=item Setting $/ to %s reference is forbidden
(F) You tried to assign a reference to a non integer to C<$/>. In older
Perls this would have behaved similarly to setting it to a reference to
(D deprecated) You tried to use a hash as a reference, as in
C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>. Versions of perl <= 5.6.1
-used to allow this syntax, but shouldn't have. It is now
+used to allow this syntax, but shouldn't have. It is now
deprecated, and will be removed in a future version.
=item Using an array as a reference is deprecated
=head1 SEE ALSO
-L<warnings>, L<perllexwarn>, L<diagnostics>.
+L<warnings>, L<diagnostics>.
=cut