Обычно нет причин использовать goto LABEL
.
Например:
my $i = 10;
Label:
# ...
goto Label if --$i;
Лучше записывается как:
my $i = 10;
{
# ...
redo if --$i;
}
Единственная причина, по которой я могу придумать, использовать метку, это разорвать несколько циклов или продолжить внешний цикл.
my $i = 10;
OUTER: while(1){
# ...
while(1){
# ...
last OUTER unless --$i;
}
}
my $i = 10;
OUTER: {
# ...
{
# ...
redo OUTER if --$i;
}
}