【发布时间】:2017-04-18 16:51:05
【问题描述】:
我在 fork 的父分支中有以下代码。也就是说,在 $pid = fork 的分支的一侧有一个非零的 $pid。我的问题是两个打印语句都为 $num_run 提供了相同的值,即零。两个打印都被执行,因此到达了 if 子句的内部。为什么 $num_run 没有增加?我确实意识到这似乎是不可能的。任何帮助将不胜感激。谢谢。
print BATCHLOG "$$: 1 parent num_run is $num_run\n";
if ($active_runs < $CORES) {
push @active_pids, $pid;
$num_rum = $num_run + 1;
print BATCHLOG "$$: 2 parent num_run is $num_run\n";
next;
}
【问题讨论】:
-
鉴于我们已经向 always
use strict和use warnings提供了数千次建议,令人惊讶的是,仍然有这么多人没有收到新闻' t 还没有达到。在任何情况下,增量运算符++在大多数语言中都可用(Lua 除外),而statememt$num_run = $num_run + 1更安全、更清晰地写为++$num_run。 -
@Borodin Python 没有
++或--供参考 -
@stevieb:没错,但你可以写
num_run += 1,这一切都很好。在 Lua 中,你不得不说num_run = num_run + 1这增加了犯 OP 错误的机会。 -
@Borodin 是的,我知道 Python 中的
x += 1,但我没有意识到在 Lua 中它是如此不同。感谢您的澄清。