[svn:perl6-synopsis] r14416 - doc/trunk/design/syn Author: larry Date: Fri Jun  8 11:09:37 2007 New Revision: 14416 Modified:    doc/trunk/design/syn/S02.pod Log: Added PROCESS as a superglobal namespace for easier apachefication of scripts. Modified: doc/trunk/design/syn/S02.pod ============================================================================== --- doc/trunk/design/syn/S02.pod	(original) +++ doc/trunk/design/syn/S02.pod	Fri Jun  8 11:09:37 2007 @@ -12,9 +12,9 @@      Maintainer: Larry Wall     Date: 10 Aug 2004 -  Last Modified: 2 Jun 2007 +  Last Modified: 8 Jun 2007    Number: 2 -  Version: 109 +  Version: 110    This document summarizes Apocalypse 2, which covers small-scale  lexical items and typological issues.  (These Synopses also contain @@ -1460,6 +1460,7 @@      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 @@ -1674,6 +1675,28 @@    =item *   +For an ordinary Perl program running by itself, the C and +C namespaces are considered synonymous.  However, it certain +situations (such as shared hosting under a webserver), the actually +process may contain multiple virtual processes, each running its own +"main" code.  In this case, the C namespace holds variables +that properly belong to the individual virtual process, while the +C namespace holds variables that properly belong to the actual +process as a whole.  From the viewpoint of the C namespace +there is little difference, since process variables that normally +appear in C are automatically imported from C. +However, the process as a whole may place restrictions on the +mutability of process variables as seen by the individual subprocesses. +Also, individual subprocesses may not create new process variables. +If the process wishes to grant subprocesses the ability to communicate +via the C namespace, it must supply a writeable hash or some +such to all the subprocesses granted that privilege. + +When these namespaces are distinguished, the C<*> shortcut always refers +to C.  There is no twigil shortcut for C. + +=item * +  Standard input is C<$*IN>, standard output is C<$*OUT>, and standard error  is C<$*ERR>.  The magic command-line input handle is C<$*ARGS>.  The arguments themselves come in C<@*ARGS>.  See also "Declaring a MAIN