Author: larry Date: Mon Mar 5 19:01:16 2007 New Revision: 14311 Modified: doc/trunk/design/syn/S02.pod doc/trunk/design/syn/S03.pod doc/trunk/design/syn/S06.pod
Log: the change back from .give to .leave was incomplete as noted by rhr++. Modified: doc/trunk/design/syn/S02.pod ============================================================================== --- doc/trunk/design/syn/S02.pod (original) +++ doc/trunk/design/syn/S02.pod Mon Mar 5 19:01:16 2007 @@ -2469,7 +2469,7 @@ would work just as well. You can exit any labeled block early by saying - MyLabel.give(@results); + MyLabel.leave(@results); =item * Modified: doc/trunk/design/syn/S03.pod ============================================================================== --- doc/trunk/design/syn/S03.pod (original) +++ doc/trunk/design/syn/S03.pod Mon Mar 5 19:01:16 2007 @@ -2025,7 +2025,7 @@ If a C<*> (see the "Whatever" type in S02) occurs on the right side of a range, it is taken to mean "positive infinity" in whatever space the range is operating. A C<*> on the left means "negative infinity" -for types that support negative values. (The sign of those infinites +for types that support negative values. (The sign of those infinities reverses for a negative step.) If the C<*> occurs on one side but not the other, the type is inferred from the other argument. A star on both sides will match any value that supports the C<Ordered> role. Modified: doc/trunk/design/syn/S06.pod ============================================================================== --- doc/trunk/design/syn/S06.pod (original) +++ doc/trunk/design/syn/S06.pod Mon Mar 5 19:01:16 2007 @@ -1629,7 +1629,7 @@ blocks this can be optimized away to a "goto". All C<Routine> declarations have an explicit declarator such as C<sub> or C<method>; bare blocks and "pointy" blocks are never considered to be routines in that sense. To return -from a block, use C<give> instead--see below. +from a block, use C<leave> instead--see below. The C<return> function preserves its argument list as a C<Capture> object, and responds to the left-hand C<Signature> in a binding. This allows named return @@ -1775,10 +1775,10 @@ COUNT.leave; last COUNT; -However, the first form explicitly gives the return value for the +However, the first form explicitly sets the return value for the entire loop, while the second implicitly returns all the previous successful loop iteration values as a list comprehension. (It may, -in fact, be too late to give a return value for the loop if it is +in fact, be too late to set a return value for the loop if it is being evaluated lazily!) A C<leave> from the inner loop block, however, merely specifies the return value for that iteration: