有人可以帮忙澄清一下吗?另外,请提及是否有“$ |”的其他表示。
提前致谢。
答案 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);