Perl goto 语句
Perl 有三种 goto 形式:got LABLE,goto EXPR,和 goto &NAME:
goto 类型 | 描述 |
---|---|
goto LABEL | 找出标记为 LABEL 的语句并且从那里重新执行 |
goto EXPR | goto EXPR 形式只是 goto LABEL 的一般形式。 它期待表达式生成一个标记名称,并跳到该标记处执行 |
goto &NAME | 它把正 在运行着的子进程替换为一个已命名子进程的调用 |
goto 语句语法格式
Perl 中 goto 语句语法格式如下所示:
goto LABEL
或
goto EXPR
或
goto &NAME
流程图
范例 : Perl 中 goto 语句的使用
#!/usr/bin/perl =pod file: mail.pl author: 简单教程(www.twle.cn) Copyright © 2015-2065 www.twle.cn. All rights reserved. =cut $step = 7; LOOP:do { if( $step == 11 ) { # 跳过迭代 $step += 1; # 使用 goto LABEL 形式 print "跳出输出 \n"; goto LOOP; print "这一句不会被执行 \n"; } print "step = $step\n"; $step += 1; }while( $step < 13 );
运行以上范例,输出结果为:
$ perl main.pl step = 7 step = 8 step = 9 step = 10 跳出输出 step = 12
范例 : 使用 goto EXPR形式
我们使用了两个字符串,并使用点号 (.) 来链接
#!/usr/bin/perl =pod file: mail.pl author: 简单教程(www.twle.cn) Copyright © 2015-2065 www.twle.cn. All rights reserved. =cut $cnt = 11; $str1 = "LO"; $str2 = "OP"; LOOP:do { if( $cnt == 15) { # 跳过迭代 $cnt = $cnt + 1; # 使用 goto EXPR 形式 goto $str1.$str2; # 类似 goto LOOP } print "cnt = $cnt\n"; $cnt = $cnt + 1; }while( $cnt < 20 );
运行以上范例,输出结果为:
$ perl main.pl cnt = 11 cnt = 12 cnt = 13 cnt = 14 cnt = 16 cnt = 17 cnt = 18 cnt = 19