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: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
Copyright © 2015-2065 www.ddkk.com. 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: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
Copyright © 2015-2065 www.ddkk.com. 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