This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
more perldiag grammar/punctuation tweaks
[perl5.git] / pod / perldiag.pod
index 43f81cd..6e0dea0 100644 (file)
@@ -365,15 +365,15 @@ dereference it first.  See L<perlfunc/substr>.
 
 (D deprecated) You have used the attributes pragma to modify the "locked"
 attribute on a code reference. The :locked attribute is obsolete, has had no
-effect since 5005 threads were removed, and will be removed in the next major
+effect since 5005 threads were removed, and will be removed in a future
 release of Perl 5.
 
 =item Attribute "unique" is deprecated
 
 (D deprecated) You have used the attributes pragma to modify the "unique"
 attribute on an array, hash or scalar reference. The :unique attribute has
-had no effect since Perl 5.8.8, and will be removed in the next major
-release of Perl 5.
+had no effect since Perl 5.8.8, and will be removed in a future release
+of Perl 5.
 
 =item Bad arg length for %s, is %u, should be %d
 
@@ -437,7 +437,7 @@ plugin API.
 
 (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.
+by setting the environment variable C<PERL_BADFREE> to 1.
 
 =item Bad symbol for array
 
@@ -510,6 +510,14 @@ 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 "\b{" is deprecated; use "\b\{" instead
+
+=item "\B{" is deprecated; use "\B\{" instead
+
+(W deprecated, regexp) Use of an unescaped "{" immediately following a
+C<\b> or C<\B> is now deprecated so as to reserve its use for Perl
+itself in a future release.
+
 =item Binary number > 0b11111111111111111111111111111111 non-portable
 
 (W portable) The binary number you specified is larger than 2**32-1
@@ -524,7 +532,7 @@ check the return value of your socket() call?  See L<perlfunc/bind>.
 =item binmode() on closed filehandle %s
 
 (W unopened) You tried binmode() on a filehandle that was never opened.
-Check you control flow and number of arguments.
+Check your control flow and number of arguments.
 
 =item Bit vector size > 32 non-portable
 
@@ -533,7 +541,7 @@ Check you control flow and number of arguments.
 =item Bizarre copy of %s in %s
 
 (P) Perl detected an attempt to copy an internal value that is not
-copyable.
+copiable.
 
 =item Buffer overflow in prime_env_iter: %s
 
@@ -579,7 +587,7 @@ from that type of reference to a typeglob.
 =item Cannot copy to %s in %s
 
 (P) Perl detected an attempt to copy a value to an internal type that cannot
-be directly assigned not.
+be directly assigned to.
 
 =item Cannot find encoding "%s"
 
@@ -606,12 +614,6 @@ a C<given> block. You probably meant to use C<next> or C<last>.
 
 (F) You called C<break>, but you're not inside a C<given> block.
 
-=item Can't call method "%s" in empty package "%s"
-
-(F) You called a method correctly, and it correctly indicated a package
-functioning as a class, but that package doesn't have ANYTHING defined
-in it, let alone methods.  See L<perlobj>.
-
 =item Can't call method "%s" on an undefined value
 
 (F) You used the syntax of a method call, but the slot filled by the
@@ -650,13 +652,7 @@ that you can chdir to, possibly because it doesn't exist.
 (P) For some reason you can't check the filesystem of the script for
 nosuid.
 
-=item Can't coerce array into hash
-
-(F) You used an array where a hash was expected, but the array has no
-information on how to map from keys to array indices.  You can do that
-only with arrays that have a hash reference at index 0.
-
-=item Can't coerce %s to integer in %s
+=item Can't coerce %s to %s in %s
 
 (F) Certain types of SVs, in particular real symbol table entries
 (typeglobs), can't be forced to stop being what they are.  So you can't
@@ -671,16 +667,6 @@ You CAN say
 
 but then $foo no longer contains a glob.
 
-=item Can't coerce %s to number in %s
-
-(F) Certain types of SVs, in particular real symbol table entries
-(typeglobs), can't be forced to stop being what they are.
-
-=item Can't coerce %s to string in %s
-
-(F) Certain types of SVs, in particular real symbol table entries
-(typeglobs), can't be forced to stop being what they are.
-
 =item Can't "continue" outside a when block
 
 (F) You called C<continue>, but you're not inside a C<when>
@@ -691,12 +677,6 @@ or C<default> block.
 (P) An error peculiar to VMS.  The process is suffering from exhausted
 quotas or other plumbing problems.
 
-=item Can't declare class for non-scalar %s in "%s"
-
-(F) Currently, only scalar variables can be declared with a specific
-class qualifier in a "my", "our" or "state" declaration.  The semantics may be
-extended for other types of variables in future.
-
 =item Can't declare %s in "%s"
 
 (F) Only scalar, array, and hash variables may be declared as "my", "our" or
@@ -811,14 +791,14 @@ editor will have a way to help you find these characters.
 
 =item Can't find Unicode property definition "%s"
 
-(F) You may have tried to use C<\p> which means a Unicode property (for
-example C<\p{Lu}> matches all uppercase letters).  If you did mean to use a
-Unicode property, see
+(F) You may have tried to use C<\p> which means a Unicode
+property (for example C<\p{Lu}> matches all uppercase
+letters). If you did mean to use a Unicode property, see
 L<perluniprops/Properties accessible through \p{} and \P{}>
-for a complete list of available properties.
-If you didn't mean to use a Unicode property, escape the C<\p>, either
-by C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until
-possible C<\E>).
+for a complete list of available properties. If you didn't
+mean to use a Unicode property, escape the C<\p>, either by C<\\p>
+(just the C<\p>) or by C<\Q\p> (the rest of the string, or
+until C<\E>).
 
 =item Can't fork: %s
 
@@ -838,12 +818,12 @@ Under VMS, access checks are done by filename, rather than by bits in
 the stat buffer, so that ACLs and other protections can be taken into
 account.  Unfortunately, Perl assumes that the stat buffer contains all
 the necessary information, and passes it, instead of the filespec, to
-the access checking routine.  It will try to retrieve the filespec using
+the access-checking routine.  It will try to retrieve the filespec using
 the device name and FID present in the stat buffer, but this works only
 if you haven't made a subsequent call to the CRTL stat() routine,
 because the device name is overwritten with each call.  If this warning
-appears, the name lookup failed, and the access checking routine gave up
-and returned FALSE, just to be conservative.  (Note: The access checking
+appears, the name lookup failed, and the access-checking routine gave up
+and returned FALSE, just to be conservative.  (Note: The access-checking
 routine knows about the Perl C<stat> operator and file tests, so you
 shouldn't ever see this warning in response to a Perl command; it arises
 only if some internal code takes stat buffers lightly.)
@@ -999,7 +979,7 @@ a NULL.
 =item Can't modify non-lvalue subroutine call
 
 (F) Subroutines meant to be used in lvalue context should be declared as
-such, see L<perlsub/"Lvalue subroutines">.
+such.  See L<perlsub/"Lvalue subroutines">.
 
 =item Can't msgrcv to read-only var
 
@@ -1026,7 +1006,7 @@ the command line.
 =item Can't open a reference
 
 (W io) You tried to open a scalar reference for reading or writing,
-using the 3-arg open() syntax :
+using the 3-arg open() syntax:
 
     open FH, '>', $ref;
 
@@ -1109,7 +1089,7 @@ to reopen it to accept binary data.  Alas, it failed.
 
 (F|P) Error resolving overloading specified by a method name (as opposed
 to a subroutine reference): no such method callable via the package. If
-method name is C<???>, this is an internal error.
+the method name is C<???>, this is an internal error.
 
 =item Can't return %s from lvalue subroutine
 
@@ -4846,10 +4826,10 @@ escape was discovered.
 recognized by Perl.  The character was understood literally, but this may
 change in a future version of Perl.
 
-=item Unrecognized escape \%c passed through in regex; marked by <-- HERE in m/%s/
+=item Unrecognized escape \%s passed through in regex; marked by <-- HERE in m/%s/
 
 (W regexp) You used a backslash-character combination which is not
-recognized by Perl.  The character was understood literally, but this may
+recognized by Perl.  The character(s) were understood literally, but this may
 change in a future version of Perl.
 The <-- HERE shows in the regular expression about where the
 escape was discovered.