我正在尝试编写一个Perl程序。程序很简单。如果变量$ a和$ b等于1那么就要打印一些东西。但是catch是程序必须检查$的值b仅当$ var == 1.否则,如果$ $ var == 0,则只需检查$ a值。
我尝试使用嵌套if来编写它。但是我收到了错误。(我尝试使用MACROS以相同的方式在C中完成它。)
my $var = 1 ;
my $a = 1 ;
my $b = 1 ;
if(($a == 1)
{
if($var == 1 )
{
&& ($b == 1)
}
)
print " hey ,it worked " ;
}
案例:1)因此,$ var == 1,它必须在打印前检查$ b的值。
my $var = 1 ;
my $a = 1 ;
my $b = 0 ;
if(($a == 1)
{
if($var == 1 )
{
&& ($b == 1)
}
)
print " hey ,it worked " ;
}
案例:2)$ b == 0,没有任何内容被打印出来。
my $var = 0 ;
my $a = 1 ;
my $b = 1 ;
if(($a == 1)
{
if($var == 1 )
{
&& ($b == 1)
}
)
print " hey ,it worked " ;
}
案例:3)$ var == 0,它不应该检查$ b的值并打印该行。 我应该得到上面提到的结果。但我没有得到怎么做。亲切帮助。
感谢你们的回复。但是你们不明白我的问题。我真正想做的是,回过头来我已经用C语言编写了一个程序,我将在.h文件中定义宏,比如
#define SWITCH 1
在.c文件中,我将检查条件。
if((a == 1)
#if SWITCH
&& (b == 1)
)
{
print " hey ,it worked " ;
}
因此,只有当.h文件中的宏值SWITCH为1时,才会检查$ b。如果该值更改为0,
#define SWITCH 0
然后print语句仅取决于a和b的值未被检查。我想在Perl中做同样的事情。
答案 0 :(得分:1)
按照您用英语描述的那样执行检查:
if ($var ? $a && $b : $a)
这是一个等效的检查:
if ($a && ( !$var || $b ))
答案 1 :(得分:1)
if ($a == 1) {
if( ($var != 1) || ($var == 1 && $b == 1) ) {
say " hey ,it worked " ;
}
}