Есть управляющее приложение (control.pl)
#!/usr/bin/perl
use IPC::Open2;
use IO::Handle;
open2(OUT,IN,"./app.pl");
$| = 1;
IN->autoflush(1);
while ($cmd !~ /^quit$|^q$/) {
print ">";
$cmd = <STDIN>;
# обработка $cmd
print IN $cmd."\n";
#close IN;
$res = <OUT>;
print "Response: $res\n";
}
close IN;
close OUT;
#!/usr/bin/perl
while (!$exit) {
$req=<STDIN>;
# тут будет обработка
print "APP: get $req \n";
if ($req =~ /^quit$|^q$/) {$exit = 1;}
}
Суть: команда, введённая с клавиатуры отправляется к скрипту app.pl. Там она обрабатывается и приходит ответ, который вываливается в stdout.
Проблема: команда отправляется на внешний скрипт, только если раскомментировать
# close IN