This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
improved docs on the warn_uninit diagnostic (from David Glasser
authorGurusamy Sarathy <gsar@cpan.org>
Thu, 27 Apr 2000 17:41:22 +0000 (17:41 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Thu, 27 Apr 2000 17:41:22 +0000 (17:41 +0000)
and Simon Cozens)

p4raw-id: //depot/perl@5967

pod/perldiag.pod

index 0196338..cb4be0e 100644 (file)
@@ -3546,6 +3546,14 @@ a package qualifier, e.g. C<&our()>, or C<Foo::our()>.
 defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
 To suppress this warning assign a defined value to your variables.
 
 defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
 To suppress this warning assign a defined value to your variables.
 
+To help you figure out what was undefined, perl tells you what operation
+you used the undefined value in.  Note, however, that perl optimizes your
+program and the operation displayed in the warning may not necessarily
+appear literally in your program.  For example, C<"that $foo"> is
+usually optimized into C<"that " . $foo>, and the warning will refer to
+the C<concatenation (.)> operator, even though there is no C<.> in your
+program.
+
 =item Value of %s can be "0"; test with defined()
 
 (W misc) In a conditional expression, you used <HANDLE>, <*> (glob),
 =item Value of %s can be "0"; test with defined()
 
 (W misc) In a conditional expression, you used <HANDLE>, <*> (glob),