当前位置:首页 » Perl » Perl条件语句

Perl条件语句

Perl条件语句if else,实例,使用例子在线教程,Perl条件语句if和unless,它们允许你控制脚本的执行。

Perl条件语句ifunless,它们允许你控制脚本的执行。if语句有五种不同的格式:

if (EXPR)
if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ...
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
STATEMENT if (EXPR)

第一种格式被归类为一个简单的语句,因为它可以在另一份声明中使用,无需在块中,如:

print "Happy Birthday!\n" if ($date == $today);

在这种情况下,如果表达式计算为一个真值(true),该消息将被打印。

第二种格式是比较熟悉的条件语句,你可能从其他语言的跨过来学习:


if ($date == $today)
{
   print "Happy Birthday!\n";
}

这将产生相同的结果和前面的例子。
第三种格式允许异常。如果表达式为true,则执行的第一个块,否则(else),第二块被执行:


if ($date == $today)
{
   print "Happy Birthday!\n";
}
else
{
   print "Happy Unbirthday!\n";
}

第四种形式,允许额外的测试,如果第一个表达式不返回true,elseif语句可以要求重复无限次测试许多不同的方案:

if ($date == $today)
{
   print "Happy Birthday!\n";
}
elsif ($date == $christmas)
{
   print "Happy Christmas!\n";
}

第五形式,如果所有其他测试失败允许额外的测试和最后的异常:

if ($date == $today)
{
   print "Happy Birthday!\n";
}
elsif ($date == $christmas)
{
   print "Happy Christmas!\n";
}else
{
   print "Happy Unbirthday!\n";
}

unless 语句自动隐含如果(if),所以unless expr是真则执行块的逻辑相反。

print "Happy Unbirthday!\n" unless ($date == $today);

is equivalent to

print "Happy Unbirthday!\n" if ($date != $today);

例如,下面与前面IF ... ELSE是一个不太优雅的解决方案,虽然达到了相同的结果,例如:

unless ($date != $today)
{
   print "Happy Unbirthday -by www.gitbook.net!\n";
}
else
{
   print "Happy Birthday!\n";
}

最后的条件语句实际上是一个操作符。有条件的运算符,这是IF ... ELSE条件语句的代名词,但更短更紧凑。供操作的格式是:

(expression) ? (statement if true) : (statement if false)

例如,我们可以效仿前面的例子如下:

($date == $today) ? print "Happy B.Day!\n" : print "Happy Day!\n";