Forum Webscript.Ru
Программирование => Perl => Тема начата: viewsonic от 28 Февраля 2003, 17:09:55
-
Не знаю как сделать. Мне надо в рамках одного скрипта запустить программу, которая обрабатывает данные и шарахает их на стандартный вывод, а мне надо их как-то читать оттуда, как это сделать? Помогите плиз.
-
Подробнее. Что за скрипт, где и как...
И "шарахает" заменить на более подходяшее слово, не в подворотне ведь общаемся.
-
Прошу прощения за жаргон.
Сейчас работает так.
Скрипт запускает стороннюю прогу.
system("./any_prg > any_file");
open (F, "any_file"); # открываем файл
while () {
..... # обрабатываем его по строчно
}
а я хочу брать данные сразу, не записывая их во временный файл.
-
Вот таким образом подойдет?
$list = `ls -l /home/`;
print $list;
-
нет это не подходит.
так я получу список файлов, зачем мне это.
я хочу просто понять как сделать в рамках скрипта так называемую трубу.
Мой скрипт запускает программу, которая если запустить просто печатает на экран данные. Я же в скрипте ее запускаю так, что она печатает эти данные в файл, имя этого файла я задаю сам, а потом я этот файл открываю и читаю данные оттуда, а потом уже их обрабатываю.
Но меня эта схема не устраивает, временный файл большой и т.д.
Я хочу запускать эту программу в скрипте и ее результаты, минуя временный файл, получать и обрабатывать.
Вот.
-
open FILE, "./any_prg |";
print ;
close FILE;
А по споcобу NeoNox будет то же самое, только проще. ;)
$list = `./any_prg`;
print $list;
-
mike Да похоже он хочет манипулировать полученными значениями.
Можно все это в массив загнать и далее уже с элементами массива работать.
-
Можно все это в массив загнать и далее уже с элементами массива работать.
viewsonic
Кстати, тот же `` с этим здорово справляется.
@lines = `./any_prg`;
-
perldoc perlipc
:)
-
Спасибо большое!
С массивом не пойдет, т.к. он получится очень большим, а вот с дескриптором попробую, наверное получится.
Еще раз спасибо.