Bucles en Perl
A veces, puede que necesitemos ejecutar el mismo bloque de código varias veces. Normalmente, las sentencias se ejecutan en orden: la primera sentencia de una función se ejecuta primero, luego la segunda, y así sucesivamente.
Los lenguajes de programación proporcionan varias estructuras de control para rutas de ejecución más complejas.
Las sentencias de bucle nos permiten ejecutar una sentencia o un grupo de sentencias varias veces. A continuación se muestra el diagrama de flujo de las sentencias de bucle en la mayoría de los lenguajes de programación:

Nota: el número 0, la cadena '0', "", la lista vacía () y undef son falsefalse, los demás valores son truetrue. Si se usa la palabra clave 'not' antes de true!onotentonces devuelve false.
El lenguaje Perl proporciona los siguientes tipos de bucles:
| Tipo de bucle | Descripción |
|---|---|
| Cuando la condición dada es true, repite la ejecución de una sentencia o grupo de sentencias. La condición se prueba antes de ejecutar el cuerpo del bucle. | |
| Repite la ejecución de una sentencia o grupo de sentencias hasta que la condición dada sea true. La condición se prueba antes de ejecutar el cuerpo del bucle. | |
| Ejecuta una secuencia de sentencias varias veces y simplifica el código que gestiona las variables del bucle. | |
| El bucle foreach se utiliza para iterar sobre los valores de una lista o una variable de colección. | |
| Es similar a la sentencia while, excepto que prueba la condición al final del cuerpo del bucle. | |
| Puede usar uno o más bucles dentro de un bucle while, for o do...while. |
Sentencias de control de bucles
Las sentencias de control de bucles cambian el orden de ejecución del código; mediante ellas se puede realizar saltos en el código.
Perl proporciona las siguientes sentencias de control de bucles:
| Sentencia de control | Descripción |
|---|---|
| Detiene la ejecución de las sentencias desde la que sigue a la sentencia next hasta la marca de fin del cuerpo del bucle, pasa a ejecutar el bloque continue y luego regresa al inicio del cuerpo del bucle para comenzar la siguiente iteración. | |
| Sale del bloque del bucle, terminando así el bucle. | |
| El bloque de la sentencia continue normalmente se ejecuta antes de que la condición se evalúe nuevamente. | |
| La sentencia redo va directamente a la primera línea del cuerpo del bucle para repetir la iteración actual; las sentencias posteriores a redo no se ejecutan, y el bloque continue tampoco se ejecuta. | |
| Perl tiene tres formas de goto: got LABLE, goto EXPR y goto &NAME. |
Bucle infinito
Si la condición nunca es false, el bucle se convertirá en un bucle infinito.
El bucle for, en el sentido tradicional, puede utilizarse para implementar un bucle infinito.
Dado que ninguno de los tres componentes del bucle es obligatorio, puede dejar vacías algunas expresiones para formar un bucle infinito.
Ejemplos
Puede presionar la tecla Ctrl + C para terminar el bucle.
Cuando la expresión de condición no existe, se asume que es true. También puede establecer un valor inicial y una expresión de incremento, pero en general, los programadores de Perl prefieren usar la estructura for(;;) para representar un bucle infinito.
Otras extensiones