я виделPerl, если заявление
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
я виделPerl, если заявление
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
Нет, см. perldoc perlsyn.
Нет, есть только первый.
Скользящий if
, вероятно, более точно показано, как:
statement if cond
То есть, нет необходимости в круглые скобки условия (так как они не нужны для устранения неоднозначности).
Довольно много:
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" }
}
что то, что я думаю, что вы действительно ищете. BTW, у меня были проблемы с Switch
, и он не работает с старше версиями Perl (pre Perl 5.8).
Родственные: [Должен ли я использовать условный язык Perl? : оператор в качестве оператора switch/case или вместо if/elsif?] (http://stackoverflow.com/q/3898836/133939) – Zaid
'if' =' if not' ... Нет необходимости в 'elsun ',' elsif not' будет достаточно. – Zaid