1

パイプを使用して、Perl スクリプトを介してコマンドをアプリケーションに渡しています。だから私はパイプにコマンドを書きます。しかし、私の問題は、コマンドの実行がアプリケーション側から終了するまでパイプが待機せず、次のコマンドを受け取ることです。したがって、コマンドの実行が終了するまで入力をブロックしません。Perl スクリプトが UNIX シェルのように機能する必要があります。しかし、プロセスがバックグラウンドで実行されているように発生します。readling を使用して入力を読み取ります。

#!/usr/bin/perl -w

use strict;
use Term::ReadLine;

open (GP, "|/usr/bin/gnuplot -noraise") or die "no gnuplot";
use FileHandle;
GP->autoflush(1);
# define readline
$term = new Term::ReadLine 'ProgramName';
while (defined( $_ = $term->readline('plot>'))) {
    printf GP ("$_\n");
}
close(GP);
4

1 に答える 1

0

Chart::Gnuplotのような具体的な CPAN モジュールの使用をお勧めします。これにより、高度な制御が可能になります。

于 2013-03-09T07:36:44.417 に答える