El ciclo de for en Perl

En el lenguaje de programación Perl hay varias maneras de crear un ciclo. Una de las formas es utilizar la palabra clave for.

He aquí un ejemplo:

▶ Run
#!/usr/bin/perl

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

El programa mostrará en la pantalla de tres líneas con números:

0
1
2

Cómo funciona el ciclo for

El ciclo de for en el lenguaje de programación Perl es muy similar al ciclo de for en la lengua programación c.

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

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

Primero se realiza el primer fragmento de código. Luego, se realiza una comprobación en la verdad o la mentira en el segundo fragmento de código. Si la comprobación de la devuelve a la verdad, entonces se ejecuta el cuerpo del bucle, si la comprobación de la devuelve false, entonces se termina el bucle. Si cambia el cuerpo del bucle, después de ejecutar el código en el cuerpo del ciclo se ejecuta el código en el tercer fragmento, luego de nuevo se comprueba y todo va más allá de la ya algoritmo descrito.

Es posible situación el cuerpo del bucle no se ha realizado ni una sola vez. Así sucede si la primera prueba inmediatamente devolverá false.

La falta de valores

Una característica interesante del ciclo radica en el hecho de que cualquier fragmento de código en la descripción del ciclo de puede faltar.

He aquí un ejemplo de un ciclo en la descripción de la cual no se establece el valor inicial es:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

En el caso de que en la descripción del ciclo de for no hay validación, esto crea un bucle infinito. He aquí un ejemplo de un ciclo de for en el que no especifica la inspección, sino para todo el ciclo se completó comprobación llevada en el cuerpo del bucle y se utiliza last.

▶ Run
#!/usr/bin/perl

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

En la descripción del ciclo tercer fragmento de la misma puede faltar:

▶ Run
#!/usr/bin/perl

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

Si en el ciclo de bajar todos los fragmentos, esto creará un bucle infinito:

#!/usr/bin/perl

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

La visibilidad de la variable

En caso de que la variable está definida en la descripción del ciclo, entonces fuera del cuerpo del ciclo, esta variable no está disponible. En el caso de que en el código hay use strict;, entonces ese trato, se generará un error.

▶ 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.

Si hay necesidad de utilizar una variable de contador fuera del cuerpo del ciclo, es necesario determinar, independientemente de su la descripción del ciclo:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $i = 0;

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

print $i;

next y last

En Perl hay palabras especiales que pueden afectar a la ejecución del ciclo.

La palabra clave next detiene la ejecución de la iteración actual:

▶ Run
#!/usr/bin/perl

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

Y con la ayuda de last puede en cualquier momento para completar la ejecución del ciclo:

▶ Run
#!/usr/bin/perl

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

Temas relacionados

Otros articulos