Come creare un ciclo infinito in Perl

Ci sono diversi modi come è possibile creare un ciclo infinito in Perl.

Utilizzare while

Il primo modo con cui è possibile creare un ciclo infinito — è quello di utilizzare ciclo while. Questo ciclo viene eseguito fino a quando l'espressione è la verità. Come è possibile espressione di scrivere una semplice costante, che è la verità e in questo caso il ciclo verrà eseguito a tempo indeterminato. Ecco un esempio di codice:

#!/usr/bin/perl

while (1) {
    # some code
}

Se è necessario completare il lavoro di questo ciclo, nel corpo del ciclo è necessario eseguire last. Ecco un esempio:

▶ Run
#!/usr/bin/perl

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

Siete pregati di notare che per uscire dal ciclo viene utilizzata la parola chiave last, e non returne non break.

Utilizzare for

Ecco come scrivere un ciclo infinito nel linguaggio di programmazione Perl c tramite for:

#!/usr/bin/perl

for (;;) {
    # some code
}

Dopo for tra parentesi va 3 frammento di codice:

  • il valore iniziale
  • verifica
  • il cambiamento

Di solito il corpo del ciclo viene eseguito nel caso in cui se il test restituisce la verità. Ma se la verifica non è presente, in questo particolare caso si ottiene un ciclo infinito.

Per uscire da questo ciclo infinito bisogno di utilizzare last:

▶ Run
#!/usr/bin/perl

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

Utilizzare until

Ecco un altro modo di come è possibile creare un ciclo infinito in Perl:

#!/usr/bin/perl

do {
    # some code
} until(0)

Il blocco di codice viene eseguito finché la condizione in until è una bugia.

Per uscire da questo ciclo infinito è anche necessario utilizzare la parola chiave last, ma un modo per farla funzionare correttamente è necessario inserire tutto il codice in un ciclo infinito tra parentesi graffe:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Ecco un esempio, in cui stiamo cercando di utilizzare last, ma non incorniciato il codice tra parentesi:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Se si esegue questo codice, quello è un errore:

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

Temi correlati

Altri articoli