Код | open my $in, $target or die $!; tie *STDOUT, 'IO::Scalar', \my $stdout; # Перенаправляем STDOUT в скаляр $stdout = do {local$/=undef;<$in>}; # Считываем входной файл close $in;
my $perl = IO::File->new; while(1) { # ... некоторый манипуляции с содержимым $stdout $perl->open('|perl'); # pipe к интерпретатору print $perl $stdout; # $perl->close; }
|
Вывод кода который я посылаю в pipe попадает в реальный STDOUT, а не в нужный мне скаляр. Почему?
ЗЫ: $^O eq 'MSWin32' ЗЗЫ: вместо IO::File/Scalar пробовал обычные open, ничего не изменилось |