Perl redo 语句
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: 简单教程(www.twle.cn) Copyright © 2015-2065 www.twle.cn. 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