introduce $^U, a global bit to indicate whether system
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index 2ce165b..b7e115f 100644 (file)
@@ -31,6 +31,14 @@ C<"%(-?@> sort before the letters, while C<[> and C<\> sort after.
 
 =over 4
 
+=item "%s" variable %s masks earlier declaration in same %s
+
+(W) A "my" or "our" variable has been redeclared in the current scope or statement,
+effectively eliminating all access to the previous instance.  This is almost
+always a typographical error.  Note that the earlier variable will still exist
+until the end of the scope or until all closure referents to it are
+destroyed.
+
 =item "my sub" not yet implemented
 
 (F) Lexically scoped subroutines are not yet implemented.  Don't try that
@@ -42,19 +50,16 @@ yet.
 to try to declare one with a package qualifier on the front.  Use local()
 if you want to localize a package variable.
 
-=item "my" variable %s masks earlier declaration in same %s
-
-(W) A lexical variable has been redeclared in the current scope or statement,
-effectively eliminating all access to the previous instance.  This is almost
-always a typographical error.  Note that the earlier variable will still exist
-until the end of the scope or until all closure referents to it are
-destroyed.
-
 =item "no" not allowed in expression
 
 (F) The "no" keyword is recognized and executed at compile time, and returns
 no useful value.  See L<perlmod>.
 
+=item "our" variable %s redeclared
+
+(W) You seem to have already declared the same global once before in the
+current lexical scope.
+
 =item "use" not allowed in expression
 
 (F) The "use" keyword is recognized and executed at compile time, and returns
@@ -684,10 +689,16 @@ only with arrays that have a hash reference at index 0.
 (P) An error peculiar to VMS.  The process is suffering from exhausted quotas
 or other plumbing problems.
 
-=item Can't declare %s in my
+=item Can't declare class for non-scalar %s in "%s"
+
+(S) Currently, only scalar variables can declared with a specific class
+qualifier in a "my" or "our" declaration.  The semantics may be extended
+for other types of variables in future.
 
-(F) Only scalar, array, and hash variables may be declared as lexical variables.
-They must have ordinary identifiers as names.
+=item Can't declare %s in "%s"
+
+(F) Only scalar, array, and hash variables may be declared as "my" or
+"our" variables.  They must have ordinary identifiers as names.
 
 =item Can't do inplace edit on %s: %s
 
@@ -1207,13 +1218,13 @@ See L<perlsub/"Constant Functions"> and L<constant>.
 
 =item Constant subroutine %s redefined
 
-(S) You redefined a subroutine which had previously been eligible for
+(S|W) You redefined a subroutine which had previously been eligible for
 inlining.  See L<perlsub/"Constant Functions"> for commentary and
 workarounds.
 
 =item Constant subroutine %s undefined
 
-(S) You undefined a subroutine which had previously been eligible for
+(W) You undefined a subroutine which had previously been eligible for
 inlining.  See L<perlsub/"Constant Functions"> for commentary and
 workarounds.
 
@@ -1278,6 +1289,11 @@ See Server error.
 
 (W) You probably referred to an imported subroutine &FOO as $FOO or some such.
 
+=item Did you mean "local" instead of "our"?
+
+(W) Remember that "our" does not localize the declared global variable.
+You have declared it again in the same lexical scope, which seems superfluous.
+
 =item Did you mean $ or @ instead of %?
 
 (W) You probably said %hash{$key} when you meant $hash{$key} or @hash{@keys}.
@@ -1326,7 +1342,7 @@ unlikely to be what you want.
 
 =item %s failed--call queue aborted
 
-(F) An untrapped exception was raised while executing a STOP, INIT, or
+(F) An untrapped exception was raised while executing a CHECK, INIT, or
 END subroutine.  Processing of the remainder of the queue of such
 routines has been prematurely ended.
 
@@ -1458,6 +1474,12 @@ a literal "at" sign, or was meant to introduce a variable name
 that happens to be missing.  So you have to put either the backslash or
 the name.
 
+=item flock() on closed filehandle %s
+
+(W) The filehandle you're attempting to flock() got itself closed some
+time before now.  Check your logic flow.  flock() operates on filehandles.
+Are you attempting to call flock() on a dirhandle by the same name?
+
 =item Format %s redefined
 
 (W) You redefined a format.  To suppress this warning, say
@@ -1514,8 +1536,9 @@ the line, and you really meant a "less than".
 =item Global symbol "%s" requires explicit package name
 
 (F) You've said "use strict vars", which indicates that all variables
-must either be lexically scoped (using "my"), or explicitly qualified to
-say which package the global variable is in (using "::").
+must either be lexically scoped (using "my"), declared beforehand using
+"our", or explicitly qualified to say which package the global variable
+is in (using "::").
 
 =item goto must have label
 
@@ -1722,7 +1745,7 @@ See L<perlfunc/sprintf>.
 
 =item Invalid separator character %s in attribute list
 
-(F) Something other than a comma or whitespace was seen between the
+(F) Something other than a colon or whitespace was seen between the
 elements of an attribute list.  If the previous attribute
 had a parenthesised parameter list, perhaps that list was terminated
 too soon.  See L<attributes>.
@@ -1983,6 +2006,12 @@ where you wanted to redirect stdout.
 and found a 'E<gt>' or a 'E<gt>E<gt>' on the command line, but can't find the
 name of the file to which to write data destined for stdout.
 
+=item No package name allowed for variable %s in "our"
+
+(F) Fully qualified variable names are not allowed in "our" declarations,
+because that doesn't make much sense under existing semantics.  Such
+syntax is reserved for future extensions.
+
 =item No Perl script found in input
 
 (F) You called C<perl -x>, but no line was found in the file beginning
@@ -2143,7 +2172,7 @@ See also L<perlport> for writing portable code.
 
 =item Odd number of elements in hash assignment
 
-(S) You specified an odd number of elements to initialize a hash, which
+(W) You specified an odd number of elements to initialize a hash, which
 is odd, because hashes come in key/value pairs.
 
 =item Offset outside string
@@ -2389,7 +2418,7 @@ when you meant
 
     my ($foo, $bar) = @_;
 
-Remember that "my" and "local" bind closer than comma.
+Remember that "my", "our" and "local" bind closer than comma.
 
 =item Perl %3.3f required--this is only version %s, stopped
 
@@ -3567,10 +3596,4 @@ in F<README.os2>.
 
 =back
 
-=item flock() on closed filehandle %s
-
-(W) The filehandle you're attempting to flock() got itself closed some
-time before now.  Check your logic flow.  flock() operates on filehandles.
-Are you attempting to call flock() on a dirhandle by the same name?
-
-=back
+=cut