扫码一下
查看教程更方便
Perl 有三种 goto 形式:got LABLE,goto EXPR,和 goto &NAME:
序号 | goto 类型 |
---|---|
1 | goto LABEL 找出标记为 LABEL 的语句并且从那里重新执行。 |
2 | goto EXPR goto EXPR 形式只是 goto LABEL 的一般形式。它期待表达式生成一个标记名称,并跳到该标记处执行。 |
3 | goto &NAME 它把正 在运行着的子进程替换为一个已命名子进程的调用。 |
语法格式如下所示:
goto LABEL
# 或
goto EXPR
# 或
goto &NAME
以下两个实例在变量 $a 为 15 时跳出输出。
以下是一个常用的 goto 实例:
#/usr/bin/perl $a = 10; LOOP:do { if( $a == 15){ # 跳过迭代 $a = $a + 1; # 使用 goto LABEL 形式 print "跳出输出 \n"; goto LOOP; print "这一句不会被执行 \n"; } print "a = $a\n"; $a = $a + 1; }while( $a < 20 );
执行以上程序,输出结果为:
a = 10
a = 11
a = 12
a = 13
a = 14
跳出输出
a = 16
a = 17
a = 18
a = 19
以下实例使用了 goto EXPR形式。我们使用了两个字符串,并使用点号 (.) 来链接。
$a = 10; $str1 = "LO"; $str2 = "OP"; LOOP:do { if( $a == 15){ # 跳过迭代 $a = $a + 1; # 使用 goto EXPR 形式 goto $str1.$str2; # 类似 goto LOOP } print "a = $a\n"; $a = $a + 1; }while( $a < 20 );
执行以上程序,输出结果为:
a = 10
a = 11
a = 12
a = 13
a = 14
a = 16
a = 17
a = 18
a = 19