Author: autrijus
Date: Fri May 12 18:49:49 2006
New Revision: 9222

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

Log:
* S06: Only bare keys with valid identifier names are recognized
  as named arguments:

    doit when => 'now';        # always a named arg
    doit 'when' => 'now';      # always a positonal arg
    doit 123  => 'now';        # always a positonal arg
    doit :123<now>;            # always a positonal arg

* S06: Named interpolation is now always via %() in the [,] zone:

    $pair = :when<now>;
    doit $pair,1,2,3;                   # always a positional arg
    doit [,] %$pair,1,2,3;              # always a named arg
    doit [,] %(get_pair()),1,2,3;       # always a named arg
    doit [,] %('when' => 'now'),1,2,3;  # always a named arg

Modified: doc/trunk/design/syn/S06.pod
==============================================================================
--- doc/trunk/design/syn/S06.pod        (original)
+++ doc/trunk/design/syn/S06.pod        Fri May 12 18:49:49 2006
@@ -362,14 +362,21 @@
     doit (when => 'now'),1,2,3;        # always a positional arg
     doit 'when' => 'now',1,2,3;        # always a positional arg
 
+Only bare keys with valid identifier names are recognized as named arguments:
+
+    doit when => 'now';                # always a named arg
+    doit 'when' => 'now';      # always a positonal arg
+    doit 123  => 'now';                # always a positonal arg
+    doit :123<now>;            # always a positonal arg
+
 Going the other way, pairs intended as named arguments that don't look
 like pairs must be introduced with the C<[,]> reduction operator:
 
     $pair = :when<now>;
     doit $pair,1,2,3;                   # always a positional arg
-    doit [,] $pair,1,2,3;               # always a named arg
-    doit [,]('when' => 'now'),1,2,3;    # always a named arg
-    doit [,] get_pair(),1,2,3;          # always a named arg
+    doit [,] %$pair,1,2,3;              # always a named arg
+    doit [,] %(get_pair()),1,2,3;       # always a named arg
+    doit [,] %('when' => 'now'),1,2,3;  # always a named arg
 
 Note that, to apply C<[,]> to a single arg you may need to use parentheses.
 In general it doesn't matter.

Reply via email to