Author: larry
Date: Tue Sep 11 13:20:07 2007
New Revision: 14456

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

Log:
Clarifications requested by pmichaud++


Modified: doc/trunk/design/syn/S05.pod
==============================================================================
--- doc/trunk/design/syn/S05.pod        (original)
+++ doc/trunk/design/syn/S05.pod        Tue Sep 11 13:20:07 2007
@@ -662,8 +662,18 @@
         \s+  { print "but does contain whitespace\n" }
      /
 
+An B<explicit> reduce from a regex closure binds the I<result object>
+for this match:
+
+        / (\d) { reduce $0.sqrt } Remainder /;
+
+This has the effect of capturing the square root of the numified string,
+instead of the string.  The C<Remainder> part is matched but is not returned
+unless the first reduce is later overridden by another reduce.
+
+These closures are invoked with a topic (C<$_>) of the current match state.
 Within a closure, the instantaneous position within the search is
-denoted by the special variable C<$ยข>.  As with all string positions,
+denoted by the C<.pos> method on that object.  As with all string positions,
 you must not treat it as a number unless you are very careful about
 which units you are dealing with.
 
@@ -1122,18 +1132,6 @@
 The closure is guaranteed to be run at the canonical time; it declares
 a sequence point, and is considered to be procedural.
 
-As with an ordinary embedded closure, an B<explicit> return from a
-regex closure binds the I<result object> for this match, ignores the
-rest of the current regex, and reports success:
-
-        / (\d) <{ return $0.sqrt }> NotReached /;
-
-This has the effect of capturing the square root of the numified string,
-instead of the string.  The C<NotReached> part is not reached.
-
-These closures are invoked as anonymous methods on the C<Match> object.
-See L</Match objects> below for more about result objects.
-
 =item *
 
 A leading C<&> interpolates the return value of a subroutine call as

Reply via email to