4

誰かが明確にするのを手伝ってもらえますか? また、「$|」の他の表現があれば記載してください。

前もって感謝します。

4

4 に答える 4

10

私が知っている実際的な違いはありません。$|ブール値(0または1)のみを格納するため、ブール値をインクリメントしても1以外の値になることはありません。マイクロマイクロオプティマイザーは、++の方が高速であると通知する場合があります。

一方、デクリメントはトグルとして機能しますが、本番コードでそれを行う正当な理由は考えられません。オンにするかオフにするかです。

于 2012-06-14T18:15:53.660 に答える
3

$|は超魔法なので、それ$|++は同じ$| = 1;ことをしますしかし、あなたがあなたが意味することをすることができるのに、なぜ魔法に頼るのですか($| = 1;)?

于 2012-06-14T18:17:26.743 に答える
2

$|の値 0として開始するため、$ | ++は0から1に増加し、$ | = 1はそれを1に設定します。ただし、その値はインクリメントまたは割り当てを介して1より大きく設定することはできないことに注意してください。例:$ | =2はまだ1と評価されます。

于 2012-06-14T18:16:37.433 に答える
1

$|ほとんどの場合、最新のコードのように低レベルの詳細をいじりたくないでしょう。これははるかに優れており、次のように書かれているため、はるかに読みやすくなっています。

use IO::Handle;
STDOUT->autoflush(1);
于 2012-06-15T10:16:28.713 に答える