それはすでに
として2つの答えmisundestandあなたの質問、聞かせてくれポイントフラッシュするために何を意味するのでしょう:単語を "ここで
は、あなたが探しているものを行い、いくつかのコードですコンテキストだけでなく、perlでフラッシュするということは、バッファされた出力を強制的に出力することを意味します。それが何であるかを理解するために、60秒間あなたは、60文字何も出力を取得していないでしょう、あなたが期待するかもしれないものに反して
for(1..60) {
print "a";
sleep(1);
}
print "\n";
ようSTHを試してみてください。これは、perlがstdout出力をバッファして改行、ファイルクローズ、またはバッファが一杯になったときにのみ送信するためです。また、実際にこのバッファを送信する動作は、理由の1つまたは別の理由で、フラッシュと呼ばれます。
$ | = 1($ |はAUTOFLUSHと呼ばれることがあり、設定されていると、すべての文字に標準出力バッファをフラッシュします)という前提で、この動作が変更されますが、実際の問題あなたが持っている。画面クリア
は、一般的に
出力をクリアする方法はありません。この何かが何をするにしてもsomefile.txtに着陸する予定より具体的には、あなたは、
perl myscript.pl > somefile.txt
と印刷何かのようにスクリプトをファイルにリダイレクトします。
出力が画面またはコンソールの場合、さまざまな方法がありますが、コンソールの種類によって異なります。多くの場合、TLPを提案すると送信されます。他の場合は、端末制御コード(cursesライブラリでラップされています)を使用することができます。
しかし、すでに言及したもの(ファイルに出力したとき)や不適合なコンソールを使用したときなどに役立つこともあります(よくあるケースではテキストからスクリプトを実行しています)エディタまたはIDE)。
だから、
、要約する:あなたが本当に出力をバックトラックする必要がある場合
[どのようにフラッシュファイルをperlで?](http://stackoverflow.com/questions/4538767/how-flush-file-in-perl) –
@ J-16SDiZ彼は "バッファ "、彼は"画面をクリア "を意味します。 – TLP
バッファに画面がすぐに印刷されることを意味するので、 "flush"を意味するとは限りません。既に印刷されたものを取り除く方法を探しています。 – Nick