Perl - Loops

There may be a situation when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.

Programming languages provide various control structures that allow for more complicated execution paths.

A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages −

Loop Architecture in Perl

Perl programming language provides the following types of loop to handle the looping requirements.

Sr.No. Loop Type & Description
1 while loop

Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.

2 until loop

Repeats a statement or group of statements until a given condition becomes true. It tests the condition before executing the loop body.

3 for loop

Executes a sequence of statements multiple times and abbreviates the code that manages the loop variable.

4 foreach loop

The foreach loop iterates over a normal list value and sets the variable VAR to be each element of the list in turn.

5 do...while loop

Like a while statement, except that it tests the condition at the end of the loop body

6 nested loops

You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements

Loop control statements change the execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.

Perl supports the following control statements. Click the following links to check their detail.

Sr.No. Control Statement & Description
1 next statement

Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.

2 last statement

Terminates the loop statement and transfers execution to the statement immediately following the loop.

3 continue statement

A continue BLOCK, it is always executed just before the conditional is about to be evaluated again.

4 redo statement

The redo command restarts the loop block without evaluating the conditional again. The continue block, if any, is not executed.

5 goto statement

Perl supports a goto command with three forms: goto label, goto expr, and goto &name.

The Infinite Loop

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.

for( ; ; ) {
   printf "This loop will run forever.\n";

You can terminate the above infinite loop by pressing the Ctrl + C keys.

When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but as a programmer more commonly use the for (;;) construct to signify an infinite loop.