Forum Webscript.Ru

Программирование => Perl => Тема начата: Maxim от 25 Марта 2002, 20:55:54

Название: Результат работы другого скрипта в переменную
Отправлено: Maxim от 25 Марта 2002, 20:55:54
Здравствуйте!
Как можно в строковую переменную занести результаты работы другого скрипта. Например, в переменную $news занести результаты работы скрипта news.pl, чтобы в $news были новости, которые выводит на news.pl.
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 25 Марта 2002, 22:19:59
perldoc LWP::Simple
perldoc lwpcook
Название: А
Отправлено: SteelRat от 26 Марта 2002, 00:42:22
Maxim какого типа скриптв?
На твоём сайте или с других?
Название: Результат работы другого скрипта в переменную
Отправлено: Maxim от 26 Марта 2002, 06:24:13
Все скрипты на моем сайте.
Название: может это поможет
Отправлено: Green Kakadu от 26 Марта 2002, 12:53:46
http://forums.webscript.ru/showthread.php?s=&threadid=3365
(запуск скрипта скриптом)
Название: Результат работы другого скрипта в переменную
Отправлено: Maxim от 26 Марта 2002, 16:13:36
Если я все правильно понял, то это не совсем то, что мне нужно.
Допустим второй скрипт:
#####################
print "Script №2";
#####################

Мне нужно, чтобы в первом скрипте, после определенных дейтсвий $tmp содержала "Script №2".
Желателно пример.
Название: Результат работы другого скрипта в переменную
Отправлено: Green Kakadu от 26 Марта 2002, 17:00:40
;)
ну через LWP (как Chs сказал ) это как-то очень свобразно будет..
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 26 Марта 2002, 17:02:43
perldoc perlipc
в части Using open() for IPC
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 26 Марта 2002, 17:05:40
Цитировать
ну через LWP (как Chs сказал ) это как-то очень свобразно будет..

Зато самый простой вариант по написанию.:))
Две строки всего.:))
Название: Результат работы другого скрипта в переменную
Отправлено: Green Kakadu от 26 Марта 2002, 17:08:08
Цитировать
Зато самый простой вариант по написанию.)
Две строки всего.)

угу, это понятно, просто :) своеобразно.
а вообще, как лучше (не быстрее, а лучше/грамотней)?
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 26 Марта 2002, 17:12:49
Цитировать
а вообще, как лучше (не быстрее, а лучше/грамотней)?

open(PRC,"script2.pl |");
$str = join(\'\',);
close PRC;

Если сервер так даст сделать.:)
Название: а может все проще?...
Отправлено: NeoNox от 26 Марта 2002, 17:44:54
Скрипт №1
#!/usr/bin/perl
require \'data.pl\';

print "Content-type:text/html\\n\\n";
$temp=$temp_data;
print " Сейчас переменная temp содержит:$temp";

Скрипт №2 (data.pl)
#!usr/bin/perl
$temp_data="Script №2";
Название: Результат работы другого скрипта в переменную
Отправлено: Maxim от 26 Марта 2002, 18:52:54
Chs
Попробовал. $str после выполнения почему-то ничего не содержит.

NeoNox
Такой вариант работает, но мне он не подходит.
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 26 Марта 2002, 20:08:53
Цитировать
Попробовал. $str после выполнения почему-то ничего не содержит.

Если на виндах, то надо вызывать перл с параметром имя скрипта.

Есть еше менее красивый вариант:

#!/usr/bin/perl
eval \'system("/usr/bin/perl script2.pl >out.txt"); \';
open(OUT,"< out.txt");
@strs = ;
close OUT;
unlink "out.txt";
$str = join(\'\',@strs);
Название: Результат работы другого скрипта в переменную
Отправлено: Maxim от 27 Марта 2002, 18:29:11
Спасибо всем за ответы!
Chs
Первый вариант тоже работает, просто надо было указать полный путь ко второму скрипту. Но плохо, что "Content-type:text/html\\n\\n" тоже попадает в $str.
Название: Результат работы другого скрипта в переменную
Отправлено: Chs от 27 Марта 2002, 20:17:13
Цитировать
Но плохо, что "Content-type:text/html\\n\\n" тоже попадает в $str.

А регэкспы на что? :)