2012-06-14 226 views
4

有人可以幫忙澄清一下嗎?此外,請提及是否有其他「$ |」的表示形式。

在此先感謝。

回答

10

我知道沒有實際的區別; $|只存儲一個布爾值(0或1),因此遞增它將永遠不會產生除1之外的任何值。微型微型優化器可能會告訴您++更快。

減少它,另一方面,作爲一個切換,但我想不出有什麼好的理由來做到這一點在生產代碼:要麼開或關。

+3

微微微優化器會告訴你,*前* -decrement比較快,這就是爲什麼Perl的轉變'EXPR ++''到EXPR ++ '在無效的情況下。 :) – ikegami

2

$的價值|從0開始,所以$ | ++從0增加到1,而$ | = 1將其設置爲1.然而注意,其值不能通過遞增或賦值例如將其值設置爲大於1。 $ | = 2仍計算爲1

+0

明白了。謝謝! – Gentle

3

$|是超級神奇,讓$|++不一樣$| = 1;但爲什麼依靠魔法時,你可以做你的意思($| = 1;)?

1

你幾乎肯定不想在現代代碼中使用像$|這樣的低級細節。這是更好和更明顯可讀寫成

use IO::Handle; 
STDOUT->autoflush(1); 
相關問題