Author: larry
Date: Sat Sep  6 21:22:00 2008
New Revision: 14580

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

Log:
"where" as Junctional infix resembling "&", but with order guaranteed


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod        (original)
+++ doc/trunk/design/syn/S03.pod        Sat Sep  6 21:22:00 2008
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 8 Mar 2004
-  Last Modified: 21 Jun 2008
+  Last Modified: 6 Jun 2008
   Number: 3
-  Version: 137
+  Version: 138
 
 =head1 Overview
 
@@ -38,7 +38,7 @@
     L  Additive          + - +| +^ ~| ~^ ?| ?^
     L  Replication       x xx
     X  Concatenation     ~
-    X  Junctive and      &
+    X  Junctive and      & where
     X  Junctive or       | ^
     L  Named unary       sleep abs sin
     N  Nonchaining infix but does <=> leg cmp .. ..^ ^.. ^..^
@@ -947,6 +947,23 @@
 
     $a & $b & $c ...
 
+=item *
+
+C<< infix:<where> >>, sequential junctional and operator
+
+    EXPR where EXPR where EXPR ...
+
+Can be used to construct ANDed patterns with the same semantics as
+C<< infix:<&> >>, but with left-to-right evaluation guaranteed, for use
+in guarded patterns:
+
+    $target ~~ MyType where .mytest1 where .mytest2
+
+This is useful when later tests might throw exceptions if earlier
+tests don't pass.  This cannot be guaranteed by:
+
+    $target ~~ MyType & .mytest1 & .mytest2
+
 =back
 
 =head2 Junctive or (any) precedence

Reply via email to