X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlsyn.pod;h=c27933015c3effbff40f675b1af8ea4065426685;hb=0111df86b68202837d8ca044a27bbc00d7895fb1;hp=8f1af955102904106091a009074472e03a96c7ae;hpb=a031eab299c8f24c0126bb6a37c6026a28a4548a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod index 8f1af95..c279330 100644 --- a/pod/perlsyn.pod +++ b/pod/perlsyn.pod @@ -33,9 +33,19 @@ as C<0>; when used as a string, it is treated the empty string, C<"">; and when used as a reference that isn't being assigned to, it is treated as an error. If you enable warnings, you'll be notified of an uninitialized value whenever you treat C -as a string or a number. Well, usually. Boolean ("don't-care") -contexts and operators such as C<++>, C<-->, C<+=>, C<-=>, and -C<.=> are always exempt from such warnings. +as a string or a number. Well, usually. Boolean contexts, such as: + + my $a; + if ($a) {} + +are exempt from warnings (because they care about truth rather than +definedness). Operators such as C<++>, C<-->, C<+=>, +C<-=>, and C<.=>, that operate on undefined left values such as: + + my $a; + $a++; + +are also always exempt from such warnings. A declaration can be put anywhere a statement can, but has no effect on the execution of the primary sequence of statements--declarations all @@ -254,11 +264,14 @@ The loop control statements don't work in an C or C, since they aren't loops. You can double the braces to make them such, though. if (/pattern/) {{ - next if /fred/; - next if /barney/; - # so something here + last if /fred/; + next if /barney/; # same effect as "last", but doesn't document as well + # do something here }} +This is caused by the fact that a block by itself acts as a loop that +executes once, see L<"Basic BLOCKs and Switch Statements">. + The form C, available in Perl 4, is no longer available. Replace any occurrence of C by C.