Change 17283 by rgs@rgs-home on 2002/06/18 18:25:53
Subject: [DOC PATCH] perlsyn
From: Elizabeth Mattijsen <[EMAIL PROTECTED]>
Date: Tue, 18 Jun 2002 13:37:30 +0200
Message-ID: <[EMAIL PROTECTED]>
Subject: Re: [DOC PATCH] perlsyn (2)
From: Elizabeth Mattijsen <[EMAIL PROTECTED]>
Date: Tue, 18 Jun 2002 15:08:17 +0200
Message-ID: <[EMAIL PROTECTED]>
(Plus tweak by Ronald J Kimball)
Affected files ...
.... //depot/perl/pod/perlsyn.pod#32 edit
Differences ...
==== //depot/perl/pod/perlsyn.pod#32 (text) ====
Index: perl/pod/perlsyn.pod
--- perl/pod/perlsyn.pod#31~14967~ Sun Mar 3 10:18:00 2002
+++ perl/pod/perlsyn.pod Tue Jun 18 11:25:53 2002
@@ -34,8 +34,18 @@
to, it is treated as an error. If you enable warnings, you'll
be notified of an uninitialized value whenever you treat C<undef>
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.
+contexts, such as:
+
+ my $a;
+ if ($a) {}
+
+are exempt from warnings. 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,10 +264,13 @@
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<while/if BLOCK BLOCK>, available in Perl 4, is no longer
available. Replace any occurrence of C<if BLOCK> by C<if (do BLOCK)>.
End of Patch.