![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Мой скрипт получает данные с stdin и пишет на stdout. Внутри скрипта вызывается внешняя программа-фильтр, которая тоже получает данные с stdin и пишет их на stdout.
Помогите реализовать (без использования временных файлов). Что-то я совсем запутался с STDIN и STDOUT-ами. |
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Не понятен вопрос, нужно перехватывать вывод, или что?
Какое поведение реализовать не удаеться? -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Попробую по-подробнее, на примере с использованием временных файлов.
Нужно то же самое, но без использования временных файлов.
|
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
amg, вот погляди вот здесь
http://forum.vingrad.ru/index.php?showtopi...st&p=950681 если вопросы еще остануться, пиши, а то я уже устал сегодня, спать пойду -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Пока вот что у меня получилось:
Не нравится. На каждую строку - новый процесс. В предыдущем варианте было на каждую строку - новый файл. Даже не знаю, что хуже. |
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Вот так у меня получилось, все пашет норм, и отключение буферизации во внутреннем вызове ключевой момент
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Nab, что-то у меня не работает твой код. Запускаю на linux script.pl file.txt. Ничего не печатает, ждет stdin. И еще, боюсь, с отключением буферизации во внутреннем вызове возможны проблемы - в качестве внутреннего фильтра ($filtr) будет программа, исходников которой у меня нет.
|
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Ага, ну так там же кавычки первым делом другие, и вот я для линукса переписал:
Добавлено через 1 минуту и 46 секунд А на счет буферизации, то это в конкретном примере важно -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Да уж, про кавычки я и сам мог бы догадаться.
С правильными кавычками работает! Любопытно, что возвращаемая фильтром строка должна заканчиваться на "\n", иначе не работает. А с буферизизацией буду пробовать, как оно себя поведет на реальном фильтре. Nab, спасибо огромное! |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |