Author: lwall
Date: 2009-01-29 02:53:54 +0100 (Thu, 29 Jan 2009)
New Revision: 25102

Modified:
   docs/Perl6/Spec/S02-bits.pod
Log:
[S02] reserve PERL and FILE lexical scope names


Modified: docs/Perl6/Spec/S02-bits.pod
===================================================================
--- docs/Perl6/Spec/S02-bits.pod        2009-01-28 19:59:07 UTC (rev 25101)
+++ docs/Perl6/Spec/S02-bits.pod        2009-01-29 01:53:54 UTC (rev 25102)
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <la...@wall.org>
   Date: 10 Aug 2004
-  Last Modified: 26 Jan 2009
+  Last Modified: 28 Jan 2009
   Number: 2
-  Version: 149
+  Version: 150
 
 This document summarizes Apocalypse 2, which covers small-scale
 lexical items and typological issues.  (These Synopses also contain
@@ -1752,24 +1752,32 @@
 
 =item *
 
-The following pseudo-package names are reserved in the first position:
+The following pseudo-package names are reserved at the front of a name:
 
-    MY          # Lexical variables declared in the current scope
-    OUR         # Package variables declared in the current package
-    GLOBAL      # Builtin variables and functions
-    PROCESS     # process-related globals
-    OUTER       # Lexical variables declared in the outer scope
-    CALLER      # Contextual variables in the immediate caller's scope
-    CONTEXT     # Contextual variables in any context's scope
-    SUPER       # Package variables declared in inherited classes
-    COMPILING   # Lexical variables in the scope being compiled
+    MY          # Lexical symbols declared in the current scope
+    OUR         # Package symbols declared in the current package
+    FILE        # Lexical symbols in this file's outermost scope
+    PERL        # Lexical symbols in the standard "perlude"
+    GLOBAL      # Interpreter-wide package symbols
+    PROCESS     # Process-related globals (superglobals)
+    SUPER       # Package symbols declared in inherited classes
+    COMPILING   # Lexical symbols in the scope being compiled
 
+The following relative names are also reserved but may be used
+anywhere in a name:
+
+    OUTER       # Lexical symbols declared in the outer scope
+    CALLER      # Contextual symbols in the immediate caller's scope
+    CONTEXT     # Contextual symbols in any context's scope
+
 Other all-caps names are semi-reserved.  We may add more of them in
 the future, so you can protect yourself from future collisions by using
 mixed case on your top-level packages.  (We promise not to break
 any existing top-level CPAN package, of course.  Except maybe ACME,
 and then only for coyotes.)
 
+Note that FILE::OUTER is usually, but not always PERL.
+
 =item *
 
 You may interpolate a string into a package or variable name using

Reply via email to