Автор Тема: Результат работы другого скрипта в переменную  (Прочитано 6068 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Maxim

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.starwars.dax.ru
Здравствуйте!
Как можно в строковую переменную занести результаты работы другого скрипта. Например, в переменную $news занести результаты работы скрипта news.pl, чтобы в $news были новости, которые выводит на news.pl.
« Последнее редактирование: 28 Марта 2002, 17:57:59 от Chs »

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
perldoc LWP::Simple
perldoc lwpcook
2B OR NOT 2B = FF

Оффлайн SteelRat

  • Funk U!
  • Старожил
  • ****
  • Сообщений: 290
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thewebfactory.fatal.ru
А
« Ответ #2 : 26 Марта 2002, 00:42:22 »
Maxim какого типа скриптв?
На твоём сайте или с других?
Debian/GNU Linux is rulezz...

Оффлайн Maxim

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.starwars.dax.ru
Все скрипты на моем сайте.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
может это поможет
« Ответ #4 : 26 Марта 2002, 12:53:46 »
http://forums.webscript.ru/showthread.php?s=&threadid=3365
(запуск скрипта скриптом)
 в исканиях.

Оффлайн Maxim

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.starwars.dax.ru
Если я все правильно понял, то это не совсем то, что мне нужно.
Допустим второй скрипт:
#####################
print "Script №2";
#####################

Мне нужно, чтобы в первом скрипте, после определенных дейтсвий $tmp содержала "Script №2".
Желателно пример.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
;)
ну через LWP (как Chs сказал ) это как-то очень свобразно будет..
 в исканиях.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
perldoc perlipc
в части Using open() for IPC
2B OR NOT 2B = FF

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Цитировать
ну через LWP (как Chs сказал ) это как-то очень свобразно будет..

Зато самый простой вариант по написанию.:))
Две строки всего.:))
2B OR NOT 2B = FF

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Зато самый простой вариант по написанию.)
Две строки всего.)

угу, это понятно, просто :) своеобразно.
а вообще, как лучше (не быстрее, а лучше/грамотней)?
 в исканиях.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Цитировать
а вообще, как лучше (не быстрее, а лучше/грамотней)?

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

Если сервер так даст сделать.:)
2B OR NOT 2B = FF

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
а может все проще?...
« Ответ #11 : 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";
The documentations is your friend

Оффлайн Maxim

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.starwars.dax.ru
Chs
Попробовал. $str после выполнения почему-то ничего не содержит.

NeoNox
Такой вариант работает, но мне он не подходит.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Цитировать
Попробовал. $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);
2B OR NOT 2B = FF

Оффлайн Maxim

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.starwars.dax.ru
Спасибо всем за ответы!
Chs
Первый вариант тоже работает, просто надо было указать полный путь ко второму скрипту. Но плохо, что "Content-type:text/html\\n\\n" тоже попадает в $str.

 

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