"unless else" wasn't previously documented, though it was valid syntax
authorReini Urban <rurban@x-ray.at>
Tue, 9 Feb 2010 15:17:00 +0000 (07:17 -0800)
committerJesse Vincent <jesse@bestpractical.com>
Tue, 9 Feb 2010 15:17:00 +0000 (07:17 -0800)
pod/perlsyn.pod

index 4e1bc0a..311be28 100644 (file)
@@ -228,6 +228,8 @@ The following compound statements may be used to control flow:
     if (EXPR) BLOCK
     if (EXPR) BLOCK else BLOCK
     if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
+    unless (EXPR) BLOCK
+    unless (EXPR) BLOCK else BLOCK
     LABEL while (EXPR) BLOCK
     LABEL while (EXPR) BLOCK continue BLOCK
     LABEL until (EXPR) BLOCK
@@ -252,7 +254,8 @@ all do the same thing:
 The C<if> statement is straightforward.  Because BLOCKs are always
 bounded by curly brackets, there is never any ambiguity about which
 C<if> an C<else> goes with.  If you use C<unless> in place of C<if>,
-the sense of the test is reversed.
+the sense of the test is reversed. In Perl even C<unless> followed
+by C<else> is valid.
 
 The C<while> statement executes the block as long as the expression is
 L<true|/"Truth and Falsehood">.