O ciclo de for em Perl

Na linguagem de programação Perl existem várias maneiras de criar um ciclo. Um dos métodos é usar a palavra-chave for.

Aqui está um exemplo:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    print "$i\n";
}

O programa exibirá as três linhas com números:

0
1
2

Como funciona o ciclo de for

O ciclo de for , na linguagem de programação Perl lembra muito o ciclo de for em alemão programação Si.

Depois de for entre parênteses vai de 3 trecho de código:

  • valor inicial
  • verificação de
  • mudança

Primeiro é executado o primeiro trecho de código. Depois da validação a verdade ou a mentira do segundo trecho de código. Se o teste retorna verdadeiro, o corpo do loop é executado, se a verificação retorna false, então o loop é encerrado. Se tiver o corpo de um ciclo, após a execução de código no corpo do laço é executado o código no terceiro trecho, então, novamente, é efectuada uma verificação e tudo vai seguir o padrão já descrito o algoritmo.

É possível situação corpo do laço não será executado nenhuma vez. Assim acontecer se a primeira verificação imediatamente retorna false.

A falta de valores

Uma característica interessante do ciclo é que, qualquer fragmento de código na descrição do ciclo de pode estar faltando.

Aqui está um exemplo de um ciclo na descrição que não é definido um valor inicial:

▶ Run
#!/usr/bin/perl

my $i = 0;

for (; $i < 3; $i++) {
    print "$i\n";
}

No caso de se descrever o ciclo de for não é feita a verificação, então isso cria um ciclo interminável. Aqui está um exemplo de um ciclo for em que não está listada, mas para ainda este ciclo foi encerrado verificação transferida para o corpo de um ciclo e é usado last.

▶ Run
#!/usr/bin/perl

for (my $i=0;; $i++) {
    last unless $i < 3;
    print "$i\n";
}

Na descrição do ciclo de terceiro fragmento pode estar faltando:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3;) {
    print "$i\n";
    $i++;
}

Se no ciclo de omitir todos os fragmentos, então isso vai gerar um loop infinito:

#!/usr/bin/perl

for (;;) {
    print "infinity\n";
}

A visibilidade de uma variável

No caso de uma variável definida na descrição de um ciclo, fora do corpo do ciclo de esta variável não está disponível. Se o código tiver use strict;, algo semelhante a ocorrência de erro.

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

for (my $i=0; $i < 3; $i++) {
    print "$i\n";
}

print $i;
Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at script.pl line 10.
Execution of script.pl aborted due to compilation errors.

Se houver a necessidade de utilizar uma variável de contador para fora do corpo do loop, então você precisa definir o seu fora as descrições do ciclo:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $i = 0;

for (; $i < 3; $i++) {
    print "$i\n";
}

print $i;

next e last

O Perl é especial, palavras-chave com o qual pode afetar a execução de um ciclo.

A palavra-chave next interrompe a execução da iteração atual:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    next if $i == 0;
    print "$i\n";
}

E com a ajuda de last pode, em qualquer momento, encerrar a execução do ciclo:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    last if $i == 1;
    print "$i\n";
}

Temas relacionados

Outros artigos