Author: larry
Date: Sun Jun  4 16:20:16 2006
New Revision: 9497

Modified:
   doc/trunk/design/syn/S03.pod

Log:
Clarifications on SIMPLEness.
Examples of dot calls defaulting to prefix ops.
Typo from masoch++.


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod        (original)
+++ doc/trunk/design/syn/S03.pod        Sun Jun  4 16:20:16 2006
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 8 Mar 2004
-  Last Modified: 3 Jun 2006
+  Last Modified: 4 Jun 2006
   Number: 3
-  Version: 36
+  Version: 37
 
 =head1 Changes to existing operators
 
@@ -33,13 +33,15 @@
 you can write C<x().foo> doesn't mean you can write C<x()foo>.)  In the
 absence of a postfix interpretation, the dot form will call the corresponding
 prefix operator instead.  So C<x().!> will call C<!x()> unless someone
-defines a postfix C<!> operator.
+defines a postfix C<!> operator.  In particular, you can say things like
+C<$array.@> and C<$filename.-e.-r>, but you can't say C<$fh.=> because
+there's a C<.=> operator already.
 
 =item * Unary C<~> now imposes a string (C<Str>) context on its
 argument, and C<+> imposes a numeric (C<Num>) context (as opposed
 to being a no-op in Perl 5).  Along the same lines, C<?> imposes
 a boolean (C<Bool>) context, and the C<[,]> list operator imposes
-an function-arguments (C<Capture>) context on its arguments.
+a function-arguments (C<Capture>) context on its arguments.
 Unary sigils impose the container context implied by their sigil.
 As with Perl 5, however, C<$$foo[bar]> parses as C<$($foo)[bar]>,
 so you need C<$($foo[bar])> to mean the other way.
@@ -116,9 +118,9 @@
 and imply scalar assignment:
 
     $a         # simple scalar variable
-    @a[SIMPLE] # single simple subscript
-    %a{SIMPLE} # single simple subscript
-    %a<x>      # single literal subscript
+    ANY[SIMPLE]        # single simple subscript
+    ANY{SIMPLE}        # single simple subscript
+    ANY<x>     # single literal subscript
 
 Where SIMPLE is defined as 
 
@@ -131,8 +133,8 @@
     ~TERM      # any single term coerced to string
     ?TERM      # any single term coerced to boolean
     !TERM      # any single term coerced to boolean
-    @a[SIMPLE] # any of these simples used as subscript recursively
-    %a{SIMPLE} # any of these simples used as subscript recursively
+    ANY[SIMPLE]        # any of these simples used as subscript recursively
+    ANY{SIMPLE}        # any of these simples used as subscript recursively
 
 We also include:
 

Reply via email to