“$ | ++”和“$ | = 1”有什么区别

时间:2012-06-14 18:09:12

标签: perl

有人可以帮忙澄清一下吗?另外,请提及是否有“$ |”的其他表示。

提前致谢。

4 个答案:

答案 0 :(得分:10)

我所知道的没有实际差别; $|只存储一个布尔值(0或1),因此递增它将永远不会产生除1之外的任何值。微观微观优化器可能会告诉你++更快。

另一方面,减少它可以作为切换,但我不能想到在生产代码中这样做的任何理由:要么你想要它还是想要它。

答案 1 :(得分:3)

$|超级神奇,所以$|++$| = 1;的效果相同但是,当你可以做你的意思时,为什么要依靠魔法?$| = 1;)?< / p>

答案 2 :(得分:2)

$ |的值从0开始,因此$ | ++从0增加到1而$ | = 1将其设置为1.注意,它的值永远不能通过增量或赋值设置为高于1。 $ | = 2仍然评估为1。

答案 3 :(得分:1)

你几乎肯定不想在现代代码中摆弄像$|这样的低级细节。这是更好,更明显可读写为

use IO::Handle;
STDOUT->autoflush(1);