This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document empty conditional in for/while
authorPeter Martini <PeterCMartini@GMail.com>
Mon, 2 Jun 2014 11:16:59 +0000 (07:16 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Tue, 24 Jun 2014 11:15:08 +0000 (07:15 -0400)
An empty conditional in both for and while has been treated
as true since perl 1.0.  This has a clear analogue in C/C++
in the case of for(;;), but while() is not legal C and should
be documented.

pod/perlsyn.pod

index 244372c..cea4d50 100644 (file)
@@ -429,6 +429,21 @@ those variables is exactly the C<for> loop (the body of the loop
 and the control sections).
 X<my>
 
+As a special case, if the test in the C<for> loop (or the corresponding
+C<while> loop) is empty, it is treated as true.  That is, both
+
+    for (;;) {
+       ...
+    }
+
+and
+
+    while () {
+       ...
+    }
+
+are treated as infinite loops.
+
 Besides the normal array index looping, C<for> can lend itself
 to many other interesting applications.  Here's one that avoids the
 problem you get into if you explicitly test for end-of-file on