我正在尝试编写一个Perl程序 程序是这样的: 有两个条件。
案例:1)如果cond1 = true且cond2 == true 然后我会检查$ a = 1,$ b = 1,$ c = 1和$ d = 1。 如果是这样,就打印出一些东西
if(($cond1 eq true) && ($cond2 eq true))
{
if(($a=1) && ($b=1) && ($c=1) && ($d=1))
{
print " Hey,it worked" ;
}
else
{
print "Test case failed" ;
}
}
案例:2)如果cond1 = true且cond2 = false 那么我只需检查变量a,b和c而不是d。
if(($cond1 eq true) && ($cond2 eq false))
{
if(($a=1) && ($b=1) && ($c=1))
{
print " Hey,it worked" ;
}
else
{
print "Test case failed" ;
}
}
案例:3)如果cond1 = false,那么我只需要检查 变量a和b。
if(($cond1 eq false))
{
if(($a=1) && ($b=1))
{
print " Hey,it worked" ;
}
else
{
print "Test case failed";
}
}
我使用嵌套的if语句编写它。但程序变得太冗长了。 是否有任何有效的方法使用perl中的特殊运算符编写程序,以便减少代码长度。非常有帮助。
答案 0 :(得分:0)
$a=1
)应该进行比较($a==1
)。 0
或1
进行明确比较。请检查一下真相。if (X) { if (Y) { ... } }
可以缩减为if (X && Y) { ... }
。在这种情况下,您可以使用以下内容:
my $ok;
if ($a && $b) {
if ($cond1)
if ($cond2) {
++$ok if $c && $d;
} else {
++$ok;
}
} else {
++$ok if !$cond2 && $c;
}
}
say( $ok ? "worked" : "didn't work" );