Perl 中的 redo 语句直接转到循环体的第一行开始重复执行本次循环,redo语句之后的语句不再执行,continue语句块也不再执行
continue 语句可用在 while 和 foreach 循环中
redo 语句语法格式
Perl 中 redo 语句语法格式如下所示:
redo [LABEL]
LABEL 是可选的
带标号修饰符 LABEL 的 redo 语句表示把循环控制流程直接转到与标号修饰符 LABEL 相关联的语句块的第一行处开始执行,而不再执行 redo 语句之后的语句和 continue 语句块;
不带标号修饰符 LABEL 的 redo 语句表示把循环控制流程直接转到当前语句块的第一行处开始执行,而不再执行 redo 语句之后的语句和 continue 语句块;
如果是在 for 循环中或者是带有 continue 语句块,则 for 循环中的递增列表和 continue 语句块都不再被执行;
redo 语句流程图
Perl 中的 redo 语句流程图如下
范例 : Perl 中 redo 语句的使用
#!/usr/bin/perl
=pod
file: mail.pl
author: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
Copyright © 2015-2065 www.ddkk.com. All rights reserved.
=cut
$step = 5;
while( $step < 9 )
{
if( $step == 5 )
{
$step += 1;
redo;
}
print "step = $step\n";
}continue
{
$step += 1;
}
运行以上范例,输出结果为:
$ perl main.pl
step = 6
step = 7
step = 8