1. ホーム
  2. perl

[解決済み] Perl で STDOUT->autoflush(1) は何をするのですか?

2022-02-19 19:28:22

質問

Perlのオートフラッシュに関する情報はいろいろとありますが、このような書式の行についての言及は見当たりません。

STDOUT->autoflush(1);

これは、私が解析しているプログラムに含まれているもので、これが何をするものなのかをもっと理解したいのです。また、プログラムの冒頭にはこんなものもあります。

use IO::Handle;

...関連しているかもしれないと思うのですが、このメソッドについてもドキュメントに記載がありません。

どのように解決するのですか?

方法 に記載されている IO::ハンドル お気づきの点

...
$io->autoflush ( [BOOL] )                         $|
...

ホワイ $| がセット/アンセットされると、次のように送られます。 $| パールヴァーで 説明用

0 以外に設定すると、現在選択されている出力チャネルへの書き込みまたは印刷の直後に、強制的にフラッシュを実行します。

v5.14現在 は必要ありません。 use IO::Handle として、これを IO::ファイル require 必要な場合はd。

このメソッドは、値を与えなくても自動フラッシュをオンにするという点で特殊です。

$io->autoflush;  # turned on ($| gets set)

他の関連するものは引数なしで呼ばれても現在値を変更しませんが。