Thread Can't "last" outside a loop block at ..... (7 answers)
Opened by esskar at 2008-05-18 23:21

KurtZ
 2008-05-19 00:47
#109888 #109888
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Cool Ralf, ganz schön pfiffig! :-)

Darauf einen nackten Block anzuspringen muss man erstmal kommen, hab mal zur Veranschauung ein Label eingefügt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;
my $count = 10;
OUTER:
{
        do {
                print "$count\n";
                $count--;
                last OUTER if $count == 3;
        }
        while($count > 0);
}
print "$count\n";


Habe letztens gelesen das solche Blöcke intern als einmaliges While-Loop behandelt wird, deswegen klappts überhaupt.

Aber ich wär mir nicht sicher obs da nicht irgendwelche blöden Nebeneffekte gibt ... jedenfalls ist dein Workaround knackiger als Conways Vorschläge, man müsste dem Editor jetzt nur noch das Einrücken abgewöhnen.

NACHTRAG: Wobei er andererseits recht hat damit das bei einem Postfix While die Schleifenbedingung schwerer zu erkennen ist.
TMTOWTDYOG (there's more than one way to dig your own grave)

View full thread Can't "last" outside a loop block at .....