O loop em linguagens de programação é um recurso que facilita a execução de um conjunto de instruções ou funções repetidamente enquanto alguma condição é avaliada como verdadeira. Os loops tornam a tarefa do programador mais simples. Perl fornece os diferentes tipos de loop para lidar com a situação baseada em condições no programa. Os loops em Perl são: 

for Loop

O loop “for” fornece uma maneira concisa de escrever a estrutura do loop. Ao contrário de um loop while, uma instrução for consome a inicialização, condição e incremento / decremento em uma linha, fornecendo assim uma estrutura de loop mais curta e fácil de depurar.
Sintaxe:
 

for (init statement; condition; increment/decrement ) 
{
    # Code to be Executed
}

Fluxograma:
 

Um loop for funciona em um fluxo de controle predefinido. O fluxo de controle pode ser determinado pelo seguinte:
 

  • Instrução init: Esta é a primeira instrução executada. Nesta etapa, inicializamos uma variável que controla o loop.
  • condição: nesta etapa, a condição fornecida é avaliada e o loop for é executado se for True. É também um loop de controle de entrada, pois a condição é verificada antes da execução das instruções de loop.
  • Execução da instrução: uma vez que a condição é avaliada como verdadeira, as instruções no corpo do loop são executadas.
  • incremento / decremento: A variável de controle do loop é alterada aqui (incrementada ou decrementada) para atualizar a variável para a próxima iteração.
  • Término do loop: Quando a condição se torna falsa, o loop termina marcando o fim de seu ciclo de vida.

Exemplo : 
 

# Perl program to illustrate
# the for loop
 
# for loop
for ($count = 1 ; $count <= 3 ; $count++)
{
    print "GeeksForGeeks\n"
}

Saída: 
 

GeeksForGeeks
GeeksForGeeks
GeeksForGeeks

Loop foreach

Um loop foreach é usado para iterar sobre uma lista e a variável contém o valor dos elementos da lista, um de cada vez. Ele é usado principalmente quando temos um conjunto de dados em uma lista e queremos iterar sobre os elementos da lista em vez de iterar sobre seu intervalo. O processo de iteração de cada elemento é feito automaticamente pelo loop.
Sintaxe: 
 

foreach variable 
{
    # Code to be Executed
}

Fluxograma:
 

Exemplo:
 

# Perl program to illustrate
# the foreach loop
 
# Array
@data = ('GEEKS', 'FOR', 'GEEKS');
 
# foreach loop
foreach $word (@data)
{
    print $word
}

Saída: 
 

GEEKSFORGEEKS

while Loop

Um loop while geralmente leva uma expressão entre parênteses. Se a expressão for True, o código dentro do corpo do loop while é executado. Um loop while é usado quando não sabemos o número de vezes que queremos que o loop seja executado, embora conheçamos a condição de término do loop. Também é conhecido como loop controlado por entrada, pois a condição é verificada antes de executar o loop. O loop while pode ser considerado uma instrução if de repetição.
Sintaxe:
 

while (condition)
{
    # Code to be executed
}

Fluxograma:
 

while_loop_perl

Exemplo : 
 

# Perl program to illustrate
# the while loop
 
# while loop
$count = 3;
while ($count >= 0)
{
    $count = $count - 1;
    print "GeeksForGeeks\n";
}

Saída: 
 

GeeksForGeeks
GeeksForGeeks
GeeksForGeeks
GeeksForGeeks

Loop While Infinito: O loop While pode ser executado infinitas vezes, o que significa que não há condição de término para este loop. Em outras palavras, podemos dizer que existem algumas condições que sempre permanecem verdadeiras, o que faz com que o loop while seja executado infinitas vezes ou podemos dizer que ele nunca termina. 
 

  • Exemplo: o programa abaixo imprimirá a instrução especificada por tempo infinito e também fornecerá o erro de tempo de execução como Limite de saída excedido no IDE online
     
# Perl program to illustrate
# the infinite while loop
 
# infinite while loop
# containing condition 1
# which is always true
while(1)
{
    print "Infinite While Loop\n";
}
  • Saída: 
     
Infinite While Loop
Infinite While Loop
Infinite While Loop
Infinite While Loop
.
.
.
.

Faz…. loop while

Um loop do..while é quase igual a um loop while. A única diferença é que o loop do..while é executado pelo menos uma vez. A condição é verificada após a primeira execução. Um loop do..while é usado quando queremos que o loop execute pelo menos uma vez. Também é conhecido como loop de saída controlada, pois a condição é verificada após a execução do loop.
Sintaxe: 
 

do {

    # statements to be Executed

} while(condition);

Fluxograma: 
 

fazer enquanto

Exemplo : 
 

# Perl program to illustrate
# do..while Loop
 
$a = 10;
 
# do..While loop
do {
 
    print "$a ";
    $a = $a - 1;
} while ($a > 0);

Saída: 
 

10 9 8 7 6 5 4 3 2 1

até o laço

O loop until é o oposto do loop while. Leva uma condição entre parênteses e só funciona até que a condição seja falsa. Basicamente, ele repete uma instrução ou conjunto de instruções até que a condição seja FALSE. É também um loop de controlador de entrada, ou seja, primeiro a condição é verificada e, em seguida, um conjunto de instruções dentro de um bloco é executado.
Sintaxe:
 

until (condition) 
{
   # Statements to be executed
}

Fluxograma:
 

até_loop_perl

Exemplo : 
 

# Perl program to illustrate until Loop
 
$a = 10;
 
# until loop
until ($a < 1)
{
    print "$a ";
    $a = $a - 1;
}

Saída: 
 

10 9 8 7 6 5 4 3 2 1

Loops aninhados

Um loop aninhado é um loop dentro de um loop. Os loops aninhados também são suportados pela Programação Perl. E todos os loops discutidos acima podem ser aninhados.
Sintaxe para diferentes loops aninhados em Perl:
 

  • Aninhado por loop 
     
for (init statement; condition; increment/decrement ) 
{
    for (init statement; condition; increment/decrement ) 
    {
         # Code to be Executed
    }
}
  •  
  • Loop foreach aninhado 
     
foreach variable_1 (@array_1) {

    foreach variable_2 (@array_2) 
   {

       # Code to be Executed
   } 
}
  •  
  • Loop while aninhado 
     
while (condition)
{
    while (condition)
    {
        # Code to be Executed
    }
}
  •  
  • Loop do..while aninhado 
     
do{
    do{

        # Code to be Executed

       }while(condition);

}while(condition);
  • Aninhado até loop 
     
until (condition) {

    until (condition) 
    {
       # Code to be Executed
    }
}
  •  

Exemplo : 
 

# Perl program to illustrate
# nested while Loop
 
$a = 5;
$b = 0;
 
# outer while loop
while ($a < 7)
{
   $b = 0;
    
   # inner while loop
   while ( $b <7 )
   {
      print "value of a = $a, b = $b\n";
      $b = $b + 1;
   }
    
   $a = $a + 1;
   print "Value of a = $a\n\n";
}

Saída: 
 

value of a = 5, b = 0
value of a = 5, b = 1
value of a = 5, b = 2
value of a = 5, b = 3
value of a = 5, b = 4
value of a = 5, b = 5
value of a = 5, b = 6
Value of a = 6

value of a = 6, b = 0
value of a = 6, b = 1
value of a = 6, b = 2
value of a = 6, b = 3
value of a = 6, b = 4
value of a = 6, b = 5
value of a = 6, b = 6
Value of a = 7