有没有办法使用';其他';作为Perl'中的修饰符;如果';构造(如';if';)?

有没有办法使用';其他';作为Perl'中的修饰符;如果';构造(如';if';)?,perl,Perl,我见过 if(cond) {} elsif(cond2) {} else {} statement if(cond) unless(cond) {} 但是有没有一个 statement if(cond) statement2 elsif(cond) statement3 else 及 不,只有第一个 尾随if修饰符可能更准确地显示为: statement if cond 也就是说,条件周围不需要括号(因为消除歧义不需要括号)。不,只有第一个括号 尾随if修饰符可能更准确地显示为: stat

我见过

if(cond) {} elsif(cond2) {} else {}
statement if(cond)
unless(cond) {}
但是有没有一个

statement if(cond)
statement2 elsif(cond)
statement3 else


不,只有第一个

尾随
if
修饰符可能更准确地显示为:

statement if cond

也就是说,条件周围不需要括号(因为消除歧义不需要括号)。

不,只有第一个括号

尾随
if
修饰符可能更准确地显示为:

statement if cond
也就是说,条件周围不需要括号(因为消除歧义不需要括号)。

不,请参见。

不,请参见。

基本上:

print "foo\n" if ($foo eq $bar);
这是一条捷径

if ($foo eq $bar) {
    print "foo\n";
}
我很少使用前一个,因为在第二个示例中,
if
语句比第一个示例中更明显。我唯一一次使用postfix
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" }
}
这就是我认为你真正想要的。顺便说一句,我在使用
开关时遇到了问题,而且它不能与旧版本的Perl(Perl 5.8之前)一起使用。

基本上:

print "foo\n" if ($foo eq $bar);
这是一条捷径

if ($foo eq $bar) {
    print "foo\n";
}
我很少使用前一个,因为在第二个示例中,
if
语句比第一个示例中更明显。我唯一一次使用postfix
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" }
}

这就是我认为你真正想要的。顺便说一句,我在使用
开关时遇到了问题,而且它不能与旧版本的Perl(Perl 5.8之前)一起使用。

相关:
,除非
=
如果不能
。。。无需使用
elsun
elsif not
即可。相关:
除非
=
如果not
。。。没有必要使用
elsun
elsun如果没有
就足够了。这只不过是一个链接答案。你能在这里总结一下吗?总结一下?它不是语言的一部分,所以“否”是你所能得到的总结。没有什么可以指向的,因为它不存在。这只不过是一个链接而已。你能在这里总结一下吗?总结一下?它不是语言的一部分,所以“否”是你所能得到的总结。没有什么可指的,因为它不存在。难道没有比“trailing if”更正式的名字吗编程Perl'有“…如果和除非修饰符”(第130页)。语句修饰符?难道没有比“拖尾if”更正式的名称吗编程Perl'有“…如果和除非修饰符”(第130页)。语句修饰符?