Author: larry Date: Wed Nov 15 10:44:13 2006 New Revision: 13479 Modified: doc/trunk/design/syn/S02.pod
Log: Clarification of $::foo et al. suggested by [partical]++ Modified: doc/trunk/design/syn/S02.pod ============================================================================== --- doc/trunk/design/syn/S02.pod (original) +++ doc/trunk/design/syn/S02.pod Wed Nov 15 10:44:13 2006 @@ -14,7 +14,7 @@ Date: 10 Aug 2004 Last Modified: 15 Nov 2006 Number: 2 - Version: 78 + Version: 79 This document summarizes Apocalypse 2, which covers small-scale lexical items and typological issues. (These Synopses also contain @@ -955,7 +955,7 @@ =item * -And I<identifier> is composed of an alphabetic character followed by +An I<identifier> is composed of an alphabetic character followed by any sequence of alphanumeric characters. The definitions of alphabetic and numeric include appropriate Unicode characters. Underscore is always considered alphabetic. @@ -969,6 +969,17 @@ $42 # numeric names $! # certain punctuational variables +When not used as a sigil, the semantic function of C<::> within a +name is to force the preceding portion of the name to be considered +a package through which the subsequent portion of the name is to +be located. If the preceding portion is null, it means the package +is unspecified and must be searched for according to the nature of +what follows. Generally this means that an initial C<::> following the +main sigil is a no-op on names that are known at compile time, though +C<::> can also be used to introduce an interpolation (see below). +Also, in the absence of another sigil, C<::> can serve as its own +sigil indicating intentional use of a not-yet-declared package name. + Unlike in Perl 5, if a sigil is followed by comma, semicolon, colon, or any kind of bracket or whitespace (including Unicode brackets and whitespace), it will be taken to be a sigil without a name rather