T_w_e_a_k_a_g_e.
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index 0bcf180..a594f53 100644 (file)
@@ -628,6 +628,13 @@ found in the PATH did not have correct permissions.
 (F) A string of a form C<CORE::word> was given to prototype(), but there
 is no builtin with the name C<word>.
 
+=item Can't find %s character property "%s"
+
+(F) You used C<\p{}> or C<\P{}> but the character property by that name
+could not be find.  Maybe you mispelled the name of the property
+(remember that the names of character properties consist only of
+alphanumeric characters), or maybe you forgot the C<Is> or C<In> prefix?
+
 =item Can't find label %s
 
 (F) You said to goto a label that isn't mentioned anywhere that it's
@@ -868,7 +875,7 @@ the command line for writing.
 redirection, and couldn't open the pipe into which to send data destined
 for stdout.
 
-=item Can't open perl script "%s": %s
+=item Can't open perl script%s: %s
 
 (F) The script you specified can't be opened for the indicated reason.
 
@@ -994,12 +1001,18 @@ calling sv_upgrade.
 (F) A value used as either a hard reference or a symbolic reference must
 be a defined value.  This helps to delurk some insidious errors.
 
+=item Can't use anonymous symbol table for method lookup
+
+(P) The internal routine that does method lookup was handed a symbol
+table that doesn't have a name.  Symbol tables can become anonymous
+for example by undefining stashes: C<undef %Some::Package::>.
+
 =item Can't use bareword ("%s") as %s ref while "strict refs" in use
 
 (F) Only hard references are allowed by "strict refs".  Symbolic
 references are disallowed.  See L<perlref>.
 
-=item Can't use %%! because Errno.pm is not available
+=item Can't use %! because Errno.pm is not available
 
 (F) The first time the %! hash is used, perl automatically loads the
 Errno.pm module. The Errno module is expected to tie the %! hash to
@@ -1701,7 +1714,9 @@ L<perlfunc/sprintf>.
 =item invalid [] range "%s" in regexp
 
 (F) The range specified in a character class had a minimum character
-greater than the maximum character.  See L<perlre>.
+greater than the maximum character.  One possibility is that you
+forgot the C<{}> from your ending C<\x{}> - C<\x> without the curly
+braces can go only up to C<ff>.  See L<perlre>.
 
 =item invalid [] range "%s" in transliteration operator
 
@@ -1857,7 +1872,11 @@ ended earlier on the current line.
 
 =item Misplaced _ in number
 
-(W syntax) An underline in a decimal constant wasn't on a 3-digit boundary.
+(W syntax) An underscore (underbar) in a numeric constant either
+immediately followed an earlier underscore; or an underscore ended a
+numeric constant, or, in the case of decimal constants, an underscore
+began or ended its fractional part.  (If you try to begin a numerical
+constant with an underscore, it won't even be recognized as a number.)
 
 =item Missing %sbrace%s on \N{}
 
@@ -3678,10 +3697,27 @@ a scalar context, the comma is treated like C's comma operator, which
 throws away the left argument, which is not what you want.  See
 L<perlref> for more on this.
 
+This warning will not be issued for numerical constants equal to 0 or 1
+since they are often used in statements like
+
+    1 while sub_with_side_effects() ;
+
+String constants that would normally evaluate to 0 or 1 are warned
+about.
+
 =item Useless use of "re" pragma
 
 (W) You did C<use re;> without any arguments.   That isn't very useful.
 
+=item Useless use of %s with no values
+
+(W syntax) You used the push() or unshift() function with no arguments
+apart from the array, like C<push(@x)> or C<unshift(@foo)>. That won't
+usually have any effect on the array, so is completely useless. It's
+possible in principle that push(@tied_array) could have some effect
+if the array is tied to a class which implements a PUSH method. If so,
+you can write it as C<push(@tied_array,())> to avoid this warning.
+
 =item "use" not allowed in expression
 
 (F) The "use" keyword is recognized and executed at compile time, and
@@ -3901,7 +3937,7 @@ So put in parentheses to say what you really mean.
 
 =item Wide character in %s
 
-(F) Perl met a wide character (>255) when it wasn't expecting one.
+(W utf8) Perl met a wide character (>255) when it wasn't expecting one.
 
 =item write() on closed filehandle %s