Perl redo 語句
Perl redo 語句直接轉到循環體的第一行開始重複執行本次迴圈,redo語句之後的語句不再執行,continue語句塊也不再執行。
continue 語句可用在 while 和 foreach 迴圈中。
語法
語法格式如下所示:
redo [LABEL]
其中 LABEL 是可選的。
帶標號修飾符LABEL的redo語句表示把迴圈控制流程直接轉到與標號修飾符LABEL相關聯的語句塊的第一行處開始執行,而不再執行redo語句之後的語句和continue語句塊;
不帶標號修飾符LABEL的redo語句表示把迴圈控制流程直接轉到當前語句塊的第一行處開始執行,而不再執行redo語句之後的語句和continue語句塊;
如果是在for迴圈中或者是帶有continue語句塊,則for迴圈中的遞增列表和continue語句塊都不再被執行;
流程圖
實例
#/usr/bin/perl
$a = 0;
while($a < 10){
if( $a == 5 ){
$a = $a + 1;
redo;
}
print "a = $a\n";
}continue{
$a = $a + 1;
}
執行以上程式,輸出結果為:
a = 0 a = 1 a = 2 a = 3 a = 4 a = 6 a = 7 a = 8 a = 9