Thread Schreibfehler in Label (14 answers)
Opened by barney at 2023-12-14 12:33

barney
 2023-12-15 15:51
#195675 #195675
User since
2008-08-31
133 Artikel
BenutzerIn
[Homepage] [default_avatar]
Denkst du da eventuell an goto LABEL;? Das ist klar, dass das ein Unding ist.

Ich setze Labels aus zwei Gründen ein. Einmal zur Dokumentation damit doppelt klar ist wie der Ablauf ist, wenn bei Schleifen next oder last verwendet wird.

Zweitens als Sicherheitsmechanismus gegen mein zukünftiges Ich. Ich füge gern mal einfache Blöcke in meinem Code ein, damit der Sichtbarkeitsbereich von lexikalischen Variablen klein bleibt. Wenn in einen solchen Block ein next ohne Label steht, dann würde der Block verlassen werden, aber nicht mehr die äußere Schleifen. Dazu eine Abwandlung meines ersten Beispiels:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use v5.24;
use strict;
use warnings;
use utf8;
use open ':std', ':encoding(UTF-8)';

for my $i ( 1 .. 10) {
{
my $var = 'asdf';

# tut was mit $Var

next if $i == 5;
}

say "$i ist nicht fünf";
}


In diesen Fall würde dann auch "5 ist nicht fünf" ausgegeben werden.

View full thread Schreibfehler in Label