1

我正在使用管道通过 Perl 脚本将命令传递给某个应用程序。所以我在管道上写命令。但我的问题是管道没有等到命令执行从应用程序端结束,它需要下一个命令。因此,在命令执行结束之前,它不会阻塞输入。我需要我的 Perl 脚本像 UNIX shell 一样工作。但它就像进程在后台运行一样发生。我使用 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

我建议使用具体的 CPAN 模块,例如Chart::Gnuplot,这样您就可以进行高级别的控制

于 2013-03-09T07:36:44.417 回答