Как можно из PERL выполнить программу, сначала слив ей в stdin инфу, а потом получить из её stdout-а результат?
после поисков нарыл такой вариант:
--parent--------
$text="123456789";
use IPC::Open2;
$pid = open2(*CHLD_OUT, *CHLD_IN, $name);
print CHLD_IN $text; #уходят без проблем, ничего не блокируется
close(CHLD_IN);
while (<CHLD_OUT>) {print ;} #отсюда получаем только "t1t2"
close(CHLD_OUT);
--child----------
print "t1";
while(<STDIN>){print ;} #тут пусто
print "t2";
-----------------
частично это работает, т.е. данные из stdout читаются.
но вот с первой частью проблема. данные уходят(ничего не блокируется даже если их много), но вот куда они приходят выяснить пока не удалось. :-(