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