私はPerlを使ってかなり簡単な処理をしようとしています。コードのスニペット:しばらく()が呼び出されたときパイプを開いてPerlで出力を解析するのに遅延が発生する
open(FH,"<command> |") or die "Could not run command .. $!\n";
print "After open\n";
while(<FH>)
{
print "I am inside loop\n";
<process..something>
}
私はいくつかの不可解な遅延を見ています。私は開いている(範囲内にある)を実行するには9-10ミリメートルを取ることがわかりますが、私は "オープン後"と "私は内部ループです"というメッセージの間に200〜250ミリ秒の遅延が見られます。
誰もこのようなことを見たことがありますか?どんな助けもありがとう。
おかげ ラジブ
「_command_」は何を実行していますか? ' 'で何かが読み取られたときに' while'の中に入るので、 '_command_"がやっていることに完全に依存します。 2秒間スリープしてから印刷すると、 'while()'が2秒間そこに座ります。 –
zdim
字句ファイルハンドル( 'my $ fh')と3つの引数' open'が推奨されます。 – zdim
私はデータベース・コマンドdb2pd -db -activeを実行していますが、その出力は(プログラムの外で試してみると)かなり瞬時に起こります。 –
rssarkar