Perl提供了另外一个“若A则B”的表示方法。可以在一般的if语句中加上修饰语,即把条件表达式放在后面,比如:
some_statements if condition;
以这个语句为例,若condition为真,则执行some_statements部分。这样的写法与下面的写法相同:
if(condition){
some_statements;
}
下面是一些类似的用法:
expression unless condition; ##类似unless(condition){ expression };
expression while condition; ##类似 while(condition) { expression };
expression until condition; ##类似 until(condition) { expression };
上面这些语句都将先执行 condition,使其真假决定是否执行 expression。
修饰语必须是简单表达式,不能是语句代码块。
虽然条件判断写在后面,但却是先执行。
另外两种“若A则B”的表示方法:
this && that;
this || that;
示例:
#!/usr/bin/perl -w
@a = (97..122);
@b = ('a'..'z');
@a == @b && print("They are equal\n");
@a == @b || print("They are not equal\n");
程序的逻辑关系如下:
表@a等于列表@b,则第三条语句前部分为真,继续执行&&后面的语句,输出“They are equal”;第四条语句,因为前面为真,不在执行||后面的语句。
表@a不等于列表@b,则第三条语句前部分为假,因此不再执行&&后面的语句;第四条语句,因为前面为假,所以还需要执行后面的语句,输出“They are not equal”;