X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlsyn.pod;h=9d0c9209eaa8d220486b666a7a84e3b9226c282f;hb=4521542890c02b2ddcb4a39429066bc380e4e5e7;hp=e6b420e5db9c19e323cae66eccb153f77fc7980d;hpb=c567402153be05de9e4e6ef0b23195e50431c6d8;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod index e6b420e..9d0c920 100644 --- a/pod/perlsyn.pod +++ b/pod/perlsyn.pod @@ -263,7 +263,7 @@ available. Replace any occurrence of C by C. =head2 For Loops -Perl's C-style C loop works exactly like the corresponding C loop; +Perl's C-style C loop works like the corresponding C loop; that means that this: for ($i = 1; $i < 10; $i++) { @@ -279,8 +279,10 @@ is the same as this: $i++; } -(There is one minor difference: The first form implies a lexical scope -for variables declared with C in the initialization expression.) +There is one minor difference: if variables are declared with C +in the initialization section of the C, the lexical scope of +those variables is exactly the C loop (the body of the loop +and the control sections). Besides the normal array index looping, C can lend itself to many other interesting applications. Here's one that avoids the @@ -391,8 +393,18 @@ structures. } There is no official C statement in Perl, because there are -already several ways to write the equivalent. In addition to the -above, you could write +already several ways to write the equivalent. + +However, starting from Perl 5.8 to get switch and case one can use +the Switch extension and say: + + use Switch; + +after which one has switch and case. It is not as fast as it could be +because it's not really part of the language (it's done using source +filters) but it is available, and it's very flexible. + +In addition to the above BLOCK construct, you could write SWITCH: { $abc = 1, last SWITCH if /^abc/;