Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.148.105] |
|
Сообщ.
#1
,
|
|
|
Скрипт работает как CGI.
use IO::Handle; open my$inp, '<'.$ENV{PATH_TRANSLATED};binmode $inp; open my$out, '|E:\dev\Perl\bin\perl.exe -IE:/dev/turbomechanikaug -Mmod::Handler -MIO::Handle -Mlocale|';binmode $out; $out->print(<$inp>); # №1 STDOUT->print('[', -s $out, ']'); # №2 # выводит "[0]" Почему-то результат выводится сразу в строке, помеченной "№1", в STDOUT. А хочется поймать вывод в свою файловую переменную и продолжить обработку. Как сделать? |
Сообщ.
#2
,
|
|
|
IO:Handle - оно конечно, круто. обычное присваивание разве не работает?
$out = <$inp>; |
Сообщ.
#3
,
|
|
|
Цитата $out = <$inp> 1. ref($out) eq 'IO::Handle'!. 2. Сразу после $out->print(<$inp>); результат выполнения <$inp> попадает почему-то в STDOUT. Вопрос: как направить результат выполнения <$inp> не в STDOUT, а в другой поток? |
Сообщ.
#4
,
|
|
|
perldoc -f open
... (You are not allowed to "open" to a command that pipes both in and out, but see IPC::Open2, IPC::Open3, and "Bidirectional Communication with Another Process" in perlipc for alternatives.) |