Программирование > Perl

open2 для Win

(1/3) > >>

xmolex:
Здравствуйте. Появилась проблема, которую я не могу решить самостоятельно, поэтому решил обратиться в качестве последней надежды к вам.
Имеется два скрипта. Первый скрипт запускает второй, передает ему во входной поток данные, ждет, когда данные обработаются и потом пытается получить отработанный результат.
Используя IPC::Open2 я добиваюсь нужного результата, но мне нужно, чтобы была мультиплатформенность, а он только на UNIX системах работает. Раньше я решал эту проблему для других систем просто создавав первым скриптом темповый файл, записывал туда данные и запускал второй скрипт с именем файла в параметре. Некрасиво, а что делать? Но тут возникла необходимость ловить данные POST. А это напрямую входной поток. Как я вторым скриптом смогу прочитать данные отправленные методом POST, если у меня там только имя файла. Вообщем, нужно писать во входной поток. Искал решения две недели, но похоже его просто нет. Я просто в отчаянии и в качестве последней надежды решил попросить помощи здесь.
Нашел интересную тему: http://forums.webscript.ru/showthread.php?threadid=25102. В ней советуют использовать конструкцию $text = `1.pl &`; и впринципе такая конструкция могла бы решить проблему, но как после & передать данные? Я могу их ввести только с клавиатуры.
Вообщем, очень жду совета.

xmolex:
На данный момент нашел опять таки кривое решение для Win и Mac платформы (возможно и для других, просто нет возможности проверить). Поток который мне нужно направить во вторую программу записываю в файл, например в 1.txt.
А потом выполняю $text = `perl prog2.pl < 1.txt`;
Работает, но всеже хочется отойти от использования промежуточных файлов. Поэтому буду очень благодарен за полезные мысли.

vladsu:
Может я чего не понял, тогда объясните, а пока вот:

/tmp/1.pl

--- Код: ---
#!/usr/bin/perl -w

use strict;

my $feedback = qx(/tmp/2.pl 8 254);

print "Feedback: $feedback\\n";

--- Конец кода ---


/tmp/2.pl

--- Код: ---
#!/usr/bin/perl -w

use strict;

print $ARGV[0] * $ARGV[1];

--- Конец кода ---

xmolex:
Мне нужно получать не аргументы, а полностью входной поток. К примеру, я хочу первым скриптом принять данные отправленные методом POST и передать их второму.

vladsu:

--- Цитировать ---xmolex:
К примеру, я хочу первым скриптом принять данные отправленные методом POST и передать их второму.
--- Конец цитаты ---

И? В чём проблема? Вы приняли первым скриптом данные, в какую-либо переменную/структуру, и хотите передать второму скрипту для дальнейшей обработки, так?

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии