在perl中,$x = if (0) {1} else {2}
不起作用。
$ perl -E'$x = if (0) {1} else {2}'
syntax error at -e line 1, near "= if"
Execution of -e aborted due to compilation errors.
这很有意义,因为if
条件不是Perl中的表达式。它们是流量控制。
但是然后
my $x = do { if (0) {1} else {2} };
工作! do BLOCK
如何接受条件if
?但是分配不能吗?在上面看来,流量控制必须是]
do BLOCK
中的上下文此外,鉴于上述简单事实,描述行为类似的if条件的正确方法是什么?它是带有值的表达式吗?评估后没有价值的流程控制构造吗?
最后,必须对赋值进行什么修改才能使其接受像if
这样的do BLOCK
条件。
在perl中,$ x =如果(0){1}否则{2}不起作用。 $ perl -E'$ x = -e行1处的if(0){1} else {2}'语法错误,靠近“ = if” -e的执行由于编译错误而中止。这很有道理,...
要在Perl中的赋值中使用条件,请使用“?:”命令,如果不是,则不要: