2

我使用了一个简单的嵌套if语句。

要求如下。

if (Condition1) {
    if (Condition2) {
        print "All OK";
    }
    else {
        print "Condition1 is true but condition2 not";
    }
    else {print "Condition1 not true";
}

是否可以在 Perl 中编写此代码,或者是否有另一种简短或更好的方法来满足此条件?

4

6 回答 6

2

TIMTOWTDI à la三元运算符

print $condition1
      ? $condition2
        ? "All OK\n"
        : "Condition 1 true, Condition 2 false\n"
      :   "Condition 1 false\n";
于 2012-09-12T06:35:05.650 回答
2

if 条件 1为真。该子句缺少结束语},应在最后一个else之前插入。

尝试这样排列:

if (...) {
    if (...) {
        ...
    }
    else {
        ...
    }
}
else {
    ....
}
于 2012-09-12T06:36:02.123 回答
1

如果您的 Perl 版本 >= 5.10,您可以使用given..when 。

use v5.14;

my $condition1 = 'true';
my $condition2 = 'True';

given($condition1) {
    when (/^true$/) {
        given($condition2) {
            when (/^True$/) { say "condition 2 is True"; }
            default         { say "condition 2 is not True"; }
        }
    }
    default { say "condition 1 is not true"; }
}
于 2012-09-12T06:32:15.163 回答
1

怎么样:

if (Condition1=false) {
     print "Condition1 not true";
}
elsif (Condition2=True ) {
    print "All OK"; 
}
else {
    print "Condition1 is true but condition2 not";  
}
于 2012-09-12T07:47:26.770 回答
0
if (!Condition1) {
  print "Condition1 not true";
}
else {
  if (Condition2) {
    print "All OK";
  }
  else {
    print "Condition1 is true but condition2 not";
  }
}
于 2012-09-12T12:47:40.110 回答
0
#OR condition
if ( ($file =~ /string/) || ($file =~ /string/) ){
}

#AND condition
if ( ($file =~ /string/) && ($file =~ /string/) ){
}
于 2013-08-01T08:07:12.883 回答