Instrução Perl goto
Perl suporta um gotodeclaração. Existem três formas: goto LABEL, goto EXPR e goto & NAME.
Sr. Não. | ir para tipo |
---|---|
1 | goto LABEL O formulário goto LABEL salta para a instrução rotulada com LABEL e retoma a execução a partir daí. |
2 | goto EXPR O formulário goto EXPR é apenas uma generalização de goto LABEL. Ele espera que a expressão retorne um nome de rótulo e, em seguida, salta para essa instrução rotulada. |
3 | goto &NAME Ele substitui uma chamada à sub-rotina nomeada pela sub-rotina em execução no momento. |
Sintaxe
A sintaxe de um goto declarações são as seguintes -
goto LABEL
or
goto EXPR
or
goto &NAME
Diagrama de fluxo
Exemplo
O programa a seguir mostra a forma mais usada de goto declaração -
#/usr/local/bin/perl
$a = 10;
LOOP:do {
if( $a == 15) {
# skip the iteration.
$a = $a + 1;
# use goto LABEL form
goto LOOP;
}
print "Value of a = $a\n";
$a = $a + 1;
} while( $a < 20 );
Quando o código acima é executado, ele produz o seguinte resultado -
Value of a = 10
Value of a = 11
Value of a = 12
Value of a = 13
Value of a = 14
Value of a = 16
Value of a = 17
Value of a = 18
Value of a = 19
O exemplo a seguir mostra o uso do formulário goto EXPR. Aqui, estamos usando duas strings e, em seguida, concatenando-as usando o operador de concatenação de string (.). Finalmente, está formando um rótulo e goto está sendo usado para pular para o rótulo -
#/usr/local/bin/perl
$a = 10;
$str1 = "LO";
$str2 = "OP";
LOOP:do {
if( $a == 15) {
# skip the iteration.
$a = $a + 1;
# use goto EXPR form
goto $str1.$str2;
}
print "Value of a = $a\n";
$a = $a + 1;
} while( $a < 20 );
Quando o código acima é executado, ele produz o seguinte resultado -
Value of a = 10
Value of a = 11
Value of a = 12
Value of a = 13
Value of a = 14
Value of a = 16
Value of a = 17
Value of a = 18
Value of a = 19