warning for split(/.../g, ...);
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index c86ed26..08f342a 100644 (file)
@@ -683,7 +683,9 @@ editor will have a way to help you find these characters.
 =item Can't find %s property definition %s
 
 (F) You may have tried to use C<\p> which means a Unicode property for
-example \p{Lu} is all uppercase letters.  Escape the C<\p>, either
+example \p{Lu} is all uppercase letters.  if you did mean to use a
+Unicode property, see L<perlunicode> for the list of known properties.
+If you didn't mean to use a Unicode property, escape the C<\p>, either
 C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until
 possible C<\E>).
 
@@ -1328,7 +1330,9 @@ unlikely to be what you want.
 
 =item Empty %s
 
-(F) Empty C<\p{}> or C<\P{}>.
+(F) C<\p> and C<\P> are used to introduce a named Unicode property, as
+described in L<perlunicode> and L<perlre>. You used C<\p> or C<\P> in
+a regular expression without specifying the property name.
 
 =item entering effective %s failed
 
@@ -1926,6 +1930,10 @@ when the function is called.
 
 Perl detected something that didn't comply with UTF-8 encoding rules.
 
+One possible cause is that you read in data that you thought to be in
+UTF-8 but it wasn't (it was for example legacy 8-bit data).  Another
+possibility is careless use of utf8::upgrade().
+
 =item Malformed UTF-16 surrogate
 
 Perl thought it was reading UTF-16 encoded character data but while
@@ -3977,6 +3985,23 @@ returns no useful value.  See L<perlmod>.
 (D deprecated) You are now encouraged to use the explicitly quoted form
 if you wish to use an empty line as the terminator of the here-document.
 
+=item Use of /c modifier is meaningless in s///
+
+(W regexp) You used the /c modifier in a substitution.  The /c
+modifier is not presently meaningful in substitutions.
+
+=item Use of /c modifier is meaningless without /g
+
+(W regexp) You used the /c modifier with a regex operand, but didn't
+use the /g modifier.  Currently, /c is meaningful only when /g is
+used.  (This may change in the future.)
+
+=item Use of /g modifier is meaningless in split
+
+(W regexp) You used the /g modifier on the pattern for a C<split>
+operator.  Since C<split> always tries to match the pattern
+repeatedly, the C</g> has no effect.
+
 =item Use of *glob{FILEHANDLE} is deprecated
 
 (D deprecated) You are now encouraged to use the shorter *glob{IO} form