This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for perlbug changes.
[perl5.git] / pod / perldiag.pod
index 8a72c53..00700c5 100644 (file)
@@ -550,11 +550,6 @@ which was too long, so it was truncated to the string shown.
 (F) A subroutine invoked from an external package via call_sv()
 exited by calling exit.
 
-=item Calling POSIX::%s() is deprecated
-
-(D deprecated) You called a function whose use is deprecated.  See
-the function's name in L<POSIX> for details.
-
 =item %s() called too early to check prototype
 
 (W prototype) You've called a function that has a prototype before the
@@ -566,6 +561,11 @@ 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 Calling POSIX::%s() is deprecated
+
+(D deprecated) You called a function whose use is deprecated.  See
+the function's name in L<POSIX> for details.
+
 =item Cannot compress integer in pack
 
 (F) An argument to pack("w",...) was too large to compress.  The BER
@@ -1304,15 +1304,18 @@ or if you use an explicit C<continue>.)
 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
 
@@ -1438,7 +1441,7 @@ but not higher.  Code points above 0xFFFF_FFFF require larger than a
 =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
@@ -1477,7 +1480,7 @@ L<charnames/CUSTOM TRANSLATORS>) returned an undefined value.
 
 (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
 
@@ -1927,7 +1930,7 @@ L<perlrecharclass/Extended Bracketed Character Classes>.
 
 (F) To use subroutine signatures, you must first enable them:
 
-    no warnings "experimental:signatures";
+    no warnings "experimental::signatures";
     use feature "signatures";
     sub foo ($left, $right) { ... }
 
@@ -3223,10 +3226,12 @@ local() if you want to localize a package variable.
 (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
@@ -6461,7 +6466,7 @@ You need to add either braces or blanks to disambiguate.
 
 (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
@@ -6737,6 +6742,6 @@ shows whereabouts in the regular expression the problem was discovered.
 
 =head1 SEE ALSO
 
-L<warnings>, L<perllexwarn>, L<diagnostics>.
+L<warnings>, L<diagnostics>.
 
 =cut