Comment créer une boucle infinie dans Perl

Il existe plusieurs façons que vous pouvez créer une boucle infinie dans Perl.

Utiliser while

La première méthode permet de créer une boucle infinie est d'utiliser le cycle de while. Le cycle se poursuit jusqu'à ce que l'expression est vraie. Comme l'expression d'écrire une simple constante, qui est la vérité et dans ce cas le cycle sera de travailler sans cesse. Voici un exemple de code:

#!/usr/bin/perl

while (1) {
    # some code
}

Si vous souhaitez arrêter ce cycle, dans le corps d'une boucle besoin d'effectuer last. Voici un exemple:

▶ Run
#!/usr/bin/perl

my $i = 0;
while (1) {
    print $i;
    last if $i > 2;
    $i++;
}

Veuillez noter que pour sortir de la boucle le mot est utilisé last, et non returnet pas break.

Utiliser for

Voici comment écrire une boucle infinie dans le langage de programmation Perl à l'aide de for:

#!/usr/bin/perl

for (;;) {
    # some code
}

Après for entre parenthèses va 3 extrait de code:

  • la valeur initiale
  • vérification
  • le changement

Habituellement, le corps de la boucle se fait dans ce cas si le test renvoie la vérité. Mais si aucune vérification, dans ce cas particulier, il s'avère une boucle infinie.

Pour sortir de cette boucle infinie, vous devez utiliser last:

▶ Run
#!/usr/bin/perl

for (my $i = 0;;$i++) {
    print "$i";
    last if $i > 2;
}

Utiliser until

Voici une autre façon que vous pouvez créer une boucle infinie en Perl:

#!/usr/bin/perl

do {
    # some code
} until(0)

Le bloc de code est exécuté jusqu'à ce que la condition dans until est un mensonge.

Pour sortir de cette boucle infinie, aussi vous devez utiliser le mot-clé last, mais, pour qu'il fonctionne correctement vous devez placer tout le code d'une boucle infinie dans des accolades:

▶ Run
#!/usr/bin/perl

my $i = 0;

{
    do {
        print $i;
        last if $i > 2;
        $i++;
    } until(0)
}

Voici un exemple dans lequel nous essayons d'utiliser last, mais ne обрамляем code des parenthèses:

▶ Run
#!/usr/bin/perl

my $i = 0;

do {
    print $i;
    last if $i > 2;
    $i++;
} until(0)

Si vous exécutez ce code, ce serait une erreur:

Can't "last" outside a loop block at script.pl line 7.
0123

Thèmes connexes

Autres articles