Perl 简明教程
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 −

Perl 编程语言提供了以下类型的循环来处理循环要求。
Perl programming language provides the following types of loop to handle the looping requirements.
Sr.No. |
Loop Type & Description |
1 |
while loopRepeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body. |
2 |
until loopRepeats a statement or group of statements until a given condition becomes true. It tests the condition before executing the loop body. |
3 |
for loopExecutes a sequence of statements multiple times and abbreviates the code that manages the loop variable. |
4 |
foreach loopThe 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 loopLike a while statement, except that it tests the condition at the end of the loop body |
6 |
nested loopsYou 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 支持以下控制语句。单击以下链接查看它们的详细信息。
Perl supports the following control statements. Click the following links to check their detail.
Sr.No. |
Control Statement & Description |
1 |
next statementCauses the loop to skip the remainder of its body and immediately retest its condition prior to reiterating. |
2 |
last statementTerminates the loop statement and transfers execution to the statement immediately following the loop. |
3 |
continue statementA continue BLOCK, it is always executed just before the conditional is about to be evaluated again. |
4 |
redo statementThe redo command restarts the loop block without evaluating the conditional again. The continue block, if any, is not executed. |
5 |
goto statementPerl supports a goto command with three forms: goto label, goto expr, and goto &name. |
The Infinite Loop
如果一个条件从未变为 false,则循环将成为无限循环。 for 循环传统上用于此目的。由于构成 for 循环的三个表达式都不必要,因此您可以通过让条件表达式为空来创建无限循环。
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.
#!/usr/local/bin/perl
for( ; ; ) {
printf "This loop will run forever.\n";
}
您可以按 Ctrl + C 键来终止上述无限循环。
You can terminate the above infinite loop by pressing the Ctrl + C keys.
当条件表达式不存在时,假定它是 true。您可能有一个初始化和增量表达式,但作为程序员更常见的是使用 for (;;) 结构来表示一个无限循环。
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.