条件语句perl5

时间:2013-10-21 19:19:34

标签: perl perl5

以下哪项不能在条件语句中使用?

while,if-else,until,if-elsif-else

或答案很简单没有这些?

2 个答案:

答案 0 :(得分:3)

可以在条件语句的BLOCK中使用任意代码。

if (f()) {
   while (g()) {
      h();
   }
}

您甚至可以使用do在条件表达式中拥有任意代码。

if (do {
      my $rv;
      while (!$rv && f()) {
         $rv ||= g();
      }
      $rv
}) {
   h();
}

答案 1 :(得分:2)

在条件语句的BLOCK中使用任何类型的语句都没有任何限制,所以答案是所有语句都可以使用。

  1. while 示例:

    use warnings;
    use strict;
    local $\="\n";
    my $count=10;
    if ($count) {
        while ($count!=0) {
            print $count--; #will print 10, 9, 8, ..., 1
        }
    }
    
  2. if-else 示例:

    use warnings;
    use strict;
    my $count=10;
    if ($count) {
        if ($count>5) {
            print 'greater than 5';
        }
        else {
            print 'lower or equal to 5';
        }
    }
    
  3. 直到为例:

    use warnings;
    use strict;
    local $\="\n";
    my $count=10;
    if ($count) {
        until ($count==0) {
            print $count--; #will print 10, 9, 8, ..., 1
        }
    }
    
  4. if-elsif-else 示例:

    use warnings;
    use strict;
    my $count=10;
    if ($count) {
        if ($count>5) {
            print 'greater than 5';
        }
        elsif ($count==5) {
            print 'equal to 5';
        }
        else {
            print 'lower than 5';
        }
    }