if(cond) {} elsif(cond2) {} else {}
statement if(cond)
unless(cond) {}
但是有
statement if(cond)
statement2 elsif(cond)
statement3 else
和
if(cond) {}
elsun(cond){} //un meaning else unless
答案 0 :(得分:8)
不,请参阅perldoc perlsyn。
答案 1 :(得分:3)
不,只有第一个。
尾随if
可能更准确地显示为:
statement if cond
也就是说,不需要围绕这个条件的括号(因为它们不需要消除歧义)。
答案 2 :(得分:0)
相当多:
print "foo\n" if ($foo eq $bar);
是
的快捷方式if ($foo eq $bar) {
print "foo\n";
}
并且,我很少使用前面的内容,因为在第二个示例中,if
语句比第一个示例中更明显。我使用后缀if
的唯一一次是这样的:
next if ($line =~ /^\s*$/);
这通常很短,无法捕捉。
您可能想尝试:
use Switch;
switch ($val) {
case 1 { print "number 1" }
case "a" { print "string a" }
case [1..10,42] { print "number in list" }
case (\@array) { print "number in list" }
case /\w+/ { print "pattern" }
case qr/\w+/ { print "pattern" }
case (\%hash) { print "entry in hash" }
case (\&sub) { print "arg to subroutine" }
else { print "previous case not true" }
}
这是我认为你真正想要的。顺便说一下,我遇到了Switch
的问题,但它不适用于旧的版本的Perl(pre Perl 5.8)。