Cómo crear un bucle infinito en Perl

Hay varias maneras de cómo se puede crear un bucle infinito en Perl.

Utilizar while

El primer método con el que se puede crear un bucle infinito es utilizar el ciclo de while. Este ciclo continúa hasta que la expresión sea verdadera. Se puede como la expresión de escribir simple una constante que es la verdad y en este caso el ciclo va a funcionar indefinidamente. He aquí un ejemplo de código:

#!/usr/bin/perl

while (1) {
    # some code
}

Si desea salir de este ciclo, en el cuerpo de un bucle es necesario realizar last. He aquí un ejemplo:

▶ Run
#!/usr/bin/perl

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

Tenga en cuenta que para salir del bucle se utiliza la palabra clave last, y no returny no break.

Utilizar for

He aquí cómo escribir un bucle infinito en el lenguaje de programación Perl, c mediante for:

#!/usr/bin/perl

for (;;) {
    # some code
}

Después de for entre paréntesis va el 3 fragmento de código:

  • el valor inicial de
  • comprobación de la
  • el cambio

Normalmente, el cuerpo del bucle se ejecuta en caso de que la comprobación de la devuelve a la verdad. Pero si la comprobación de la falta, en este caso especial, se obtiene un bucle infinito.

Para salir de este bucle infinito, es necesario utilizar last:

▶ Run
#!/usr/bin/perl

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

Utilizar until

He aquí otra manera de como se puede crear un bucle infinito en Perl:

#!/usr/bin/perl

do {
    # some code
} until(0)

El bloque de código se ejecuta hasta que la condición en until es una mentira.

Para salir de este bucle infinito, también es necesario utilizar la palabra clave last, pero para que funcione correctamente es necesario colocar todo el código del bucle infinito entre llaves:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

He aquí un ejemplo en el que tratamos de utilizar last, pero no обрамляем código paréntesis:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Si ejecuta este código, será de error:

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

Temas relacionados

Otros articulos