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