Pod formatting nit, found by Merijn and Jos Boumans.
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index 6907866..a0ef21a 100644 (file)
@@ -49,7 +49,7 @@ letter.
 (W) When using threaded Perl, a thread (not necessarily the main
 thread) exited while there were still other threads running.
 Usually it's a good idea to first collect the return values of the
-created threads by joining them, and only then exit from then main
+created threads by joining them, and only then exit from the main
 thread.  See L<threads>.
 
 =item accept() on closed socket %s
@@ -318,12 +318,6 @@ which is left unnoticed if C<DB> uses I<forgiving> system malloc().
 
 (P) One of the internal hash routines was passed a null HV pointer.
 
-=item Bad index while coercing array into hash
-
-(F) The index looked up in the hash found as the 0'th element of a
-pseudo-hash is not legal.  Index values must be at 1 or greater.
-See L<perlref>.
-
 =item Badly placed ()'s
 
 (A) You've accidentally run your script through B<csh> instead
@@ -689,11 +683,11 @@ 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.  if you did mean to use a
+(F) You may have tried to use C<\p> which means a Unicode property (for
+example C<\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
+by C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until
 possible C<\E>).
 
 =item Can't fork
@@ -780,13 +774,6 @@ lexical variable using "my".  This is not allowed.  If you want to
 localize a package variable of the same name, qualify it with the
 package name.
 
-=item Can't localize pseudo-hash element
-
-(F) You said something like C<< local $ar->{'key'} >>, where $ar is a
-reference to a pseudo-hash.  That hasn't been implemented yet, but you
-can get a similar effect by localizing the corresponding array element
-directly -- C<< local $ar->[$ar->[0]{'key'}] >>.
-
 =item Can't localize through a reference
 
 (F) You said something like C<local $$ref>, which Perl can't currently
@@ -1435,7 +1422,7 @@ goto, or a loop control statement.
 
 =item Exiting format via %s
 
-(W exiting) You are exiting an eval by unconventional means, such as a
+(W exiting) You are exiting a format by unconventional means, such as a
 goto, or a loop control statement.
 
 =item Exiting pseudo-block via %s
@@ -1498,13 +1485,25 @@ PDP-11 or something?
 to be a read-write filehandle, you needed to open it with "+<" or "+>"
 or "+>>" instead of with "<" or nothing.  If you intended only to write
 the file, use ">" or ">>".  See L<perlfunc/open>.
+The warning will also occur if STDOUT (file descriptor 1) or STDERR
+(file descriptor 2) is opened for input, this is a pre-emptive warning in
+case some other part of your program or a child process is expecting STDOUT
+and STDERR to be writable. This can happen accidentally if you
+C<close(STDOUT)> or STDERR and then C<open> an unrelated handle which
+will resuse the lowest numbered available descriptor.
 
 =item Filehandle %s opened only for output
 
-(W io) You tried to read from a filehandle opened only for writing.  If
-you intended it to be a read/write filehandle, you needed to open it
+(W io) You tried to read from a filehandle opened only for writing.
+If you intended it to be a read/write filehandle, you needed to open it
 with "+<" or "+>" or "+>>" instead of with "<" or nothing.  If you
 intended only to read from the file, use "<".  See L<perlfunc/open>.
+The warning will also occur if STDIN (file descriptor 0) is opened
+for output - this is a pre-emptive warning in case some other part of your
+program or a child process is expecting STDIN to be readable.
+This can happen accidentally if you C<close(STDIN)> and then C<open> an
+unrelated handle which will resuse the lowest numbered available
+descriptor.
 
 =item Final $ should be \$ or $name
 
@@ -2319,19 +2318,6 @@ this class doesn't exist at this point in your program.
 close a pipe which hadn't been opened.  This should have been caught
 earlier as an attempt to close an unopened filehandle.
 
-=item No such pseudo-hash field "%s"
-
-(F) You tried to access an array as a hash, but the field name used is
-not defined.  The hash at index 0 should map all valid field names to
-array indices for that to work.
-
-=item No such pseudo-hash field "%s" in variable %s of type %s
-
-(F) You tried to access a field of a typed variable where the type does
-not know about the field name.  The field names are looked up in the
-%FIELDS hash in the type package at compile time.  The %FIELDS hash is
-%usually set up with the 'fields' pragma.
-
 =item No such signal: SIG%s
 
 (W signal) You specified a signal name as a subscript to %SIG that was
@@ -3017,7 +3003,7 @@ declared or defined with a different function prototype.
 
 =item Prototype not terminated
 
-(F) You've omitted the closing parenthesis in a function prototype 
+(F) You've omitted the closing parenthesis in a function prototype
 definition.
 
 =item Quantifier in {,} bigger than %d in regex;
@@ -4134,7 +4120,7 @@ defined B<awk> feature.  Use an explicit printf() or sprintf() instead.
 
 =item Use of reference "%s" as array index
 
-(W) You tried to use a reference as an array index; this probably
+(W misc) You tried to use a reference as an array index; this probably
 isn't what you mean, because references in numerical context tend
 to be huge numbers, and so usually indicates programmer error.
 
@@ -4154,7 +4140,7 @@ a package qualifier, e.g. C<&our()>, or C<Foo::our()>.
 
 =item Use of tainted arguments in %s is deprecated
 
-(W taint) You have supplied C<system()> or C<exec()> with multiple 
+(W taint, deprecated) You have supplied C<system()> or C<exec()> with multiple
 arguments and at least one of them is tainted.  This used to be allowed
 but will become a fatal error in a future version of perl.  Untaint your
 arguments.  See L<perlsec>.
@@ -4293,7 +4279,7 @@ the version number.
 
 =item v-string in use/require is non-portable
 
-(W) The use of v-strings is non-portable to older, pre-5.6, Perls.
+(W portable) The use of v-strings is non-portable to older, pre-5.6, Perls.
 If you want your scripts to be backward portable, use the floating
 point version number: for example, instead of C<use 5.6.1> say
 C<use 5.006_001>.  This of course won't help: the older Perls