誰かが明確にするのを手伝ってもらえますか? また、「$|」の他の表現があれば記載してください。
前もって感謝します。
私が知っている実際的な違いはありません。$|
ブール値(0または1)のみを格納するため、ブール値をインクリメントしても1以外の値になることはありません。マイクロマイクロオプティマイザーは、++の方が高速であると通知する場合があります。
一方、デクリメントはトグルとして機能しますが、本番コードでそれを行う正当な理由は考えられません。オンにするかオフにするかです。
$|
は超魔法なので、それ$|++
は同じ$| = 1;
ことをしますしかし、あなたがあなたが意味することをすることができるのに、なぜ魔法に頼るのですか($| = 1;
)?
$|の値 0として開始するため、$ | ++は0から1に増加し、$ | = 1はそれを1に設定します。ただし、その値はインクリメントまたは割り当てを介して1より大きく設定することはできないことに注意してください。例:$ | =2はまだ1と評価されます。
$|
ほとんどの場合、最新のコードのように低レベルの詳細をいじりたくないでしょう。これははるかに優れており、次のように書かれているため、はるかに読みやすくなっています。
use IO::Handle;
STDOUT->autoflush(1);