Perl goto 语句

Perl 有三种 goto 形式:got LABLE,goto EXPR,和 goto &NAME:

序号goto 类型
1goto LABEL 找出标记为 LABEL 的语句并且从那里重新执行。
2goto EXPR goto EXPR 形式只是 goto LABEL 的一般形式。它期待表达式生成一个标记名称,并跳到该标记处执行。
3goto &NAME 它把正 在运行着的子进程替换为一个已命名子进程的调用。

语法

语法格式如下所示:

  1. goto LABEL
  2. goto EXPR
  3. goto &NAME

流程图

Perl goto 语句 - 图1

实例

以下两个实例在变量 $a 为 15 时跳出输出。

以下是一个常用的 goto 实例:

  1. #/usr/bin/perl
  2. $a = 10;
  3. LOOP:do
  4. {
  5. if( $a == 15){
  6. # 跳过迭代
  7. $a = $a + 1;
  8. # 使用 goto LABEL 形式
  9. print "跳出输出 \n";
  10. goto LOOP;
  11. print "这一句不会被执行 \n";
  12. }
  13. print "a = $a\n";
  14. $a = $a + 1;
  15. }while( $a < 20 );

执行以上程序,输出结果为:

  1. a = 10
  2. a = 11
  3. a = 12
  4. a = 13
  5. a = 14
  6. 跳出输出
  7. a = 16
  8. a = 17
  9. a = 18
  10. a = 19
  11.  

以下实例使用了 goto EXPR形式。我们使用了两个字符串,并使用点号 (.) 来链接。

  1. $a = 10;
  2. $str1 = "LO";
  3. $str2 = "OP";
  4. LOOP:do
  5. {
  6. if( $a == 15){
  7. # 跳过迭代
  8. $a = $a + 1;
  9. # 使用 goto EXPR 形式
  10. goto $str1.$str2; # 类似 goto LOOP
  11. }
  12. print "a = $a\n";
  13. $a = $a + 1;
  14. }while( $a < 20 );

执行以上程序,输出结果为:

  1. a = 10
  2. a = 11
  3. a = 12
  4. a = 13
  5. a = 14
  6. a = 16
  7. a = 17
  8. a = 18
  9. a = 19