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