Author: larry
Date: Tue Apr 29 13:32:24 2008
New Revision: 14539


<foo: ...> is now just alternate method call syntax, use <foo: 'text'> for 

Modified: doc/trunk/design/syn/S05.pod
--- doc/trunk/design/syn/S05.pod        (original)
+++ doc/trunk/design/syn/S05.pod        Tue Apr 29 13:32:24 2008
@@ -14,9 +14,9 @@
    Maintainer: Patrick Michaud <[EMAIL PROTECTED]> and
                Larry Wall <[EMAIL PROTECTED]>
    Date: 24 Jun 2002
-   Last Modified: 19 Mar 2008
+   Last Modified: 29 Apr 2008
    Number: 5
-   Version: 76
+   Version: 77
 This document summarizes Apocalypse 5, which is about the new regex
 syntax.  We now try to call them I<regex> rather than "regular
@@ -1157,13 +1157,12 @@
 To pass a regex with leading whitespace you must use the parenthesized form.
-If the first character is a colon, the rest of the text (following any
-whitespace) is passed as a string, so the previous may also be written as:
+If the first character is a colon followed by whitespace, the rest
+of the text is taken as a list of arguments to the method, just as
+in ordinary Perl syntax.  So these mean the same thing:
-    <foo: bar>
-To pass a string with leading whitespace, or to interpolate any values
-into the string, you must use the parenthesized form.
+    <foo('foo', $bar, 42)>
+    <foo: 'foo', $bar, 42>
 No other characters are allowed after the initial identifier.
@@ -1182,6 +1181,15 @@
      / <.ident> <ws>  /      # only $/<ws> captured
      / <.ident> <.ws> /      # nothing captured
+The assertion is otherwise parsed identically to an assertion beginning with
+an identifier, provided the next thing after the dot is an identifier.  
Otherwise it
+is parsed as a "dotty" postfix of some type, such as an indirect method call:
+    <.$indirect($depth, $binding, $fate, @args)>
+In this case the object passed as the invocant is the current match
+state, and the method is expected to return a new match state object.
 The non-capturing behavior may be overridden with a C<:keepall>.
 =item *

Reply via email to