LINUX.ORG.RU

[Perl] Передача переменных из скрипта в cgi

 


0

1

Hello all!

Имеется cgi скрипт на Perl (его модифицировать нельзя). Данный скрипт принимает из POST запроса значения ($VAR1=val1 $VAR2=val2) и формирует HTML.

Подскажите, плиз, как можно реализовать следующую схему: Скрипт в цикле вызывает cgi и при каждой итерации меняет значения $VAR1. Нужно чтобы вызывающий скрипт мог модифицировать переменные внутри вызываемого скрипта.

За дельные ответы заранее спасибо!

Ответ на: комментарий от Hoodoo

Да. Скрипт будет располагаться на том же хосте.

quituku
() автор топика
Ответ на: комментарий от Hoodoo

Использовать такой метод не желательно использовать в данной ситуации. Скажем так: такой метод отложен на крайний случай

quituku
() автор топика
Ответ на: комментарий от Hoodoo

А возможно ли указать вместо url адрес скрипта? Я если честно, не уверен.

Задам вопрос так:

#!/usr/bin/perl
# /some_dir/script1.pl (read only)
...
...
...
my $var3=$VAR1+$VAR2;
print $var3;

#!/usr/bin/perl
# /some_dir/script2.pl
...
...
...
exec ('/some_dir/script1.pl');
...
...
...

Как, если это возможно, передать передать переменные $VAR1 и $VAR2 из script2.pl в script1.pl

quituku
() автор топика
Ответ на: комментарий от quituku

Сегодня что-то я повторяюсь сегодня

=]

quituku
() автор топика
Ответ на: комментарий от quituku

Данный скрипт принимает из POST запроса значения ($VAR1=val1 $VAR2=val2) и формирует HTML.

Приведённые модули работают с POST запросами.

Если надо скрипту скармливать параметры из командной строки, то надо пользоваться @ARGV, разве нет?

Если в первом (read only) скрипте не предусмотрено никаких пихательных отверстий типа обработки аргументов командной строки или пользовательского ввода, то как же им что-то передашь?

А тут сказано: скрипт работает через HTTP-запросы.

Получается в скрипте 2 приблизительно так:

#!/usr/bin/perl 
# /some_dir/script2.pl

use warnings; 
use strict; 
use LWP::UserAgent; 
... 
... 
...

# Получаем результат от CGI-скрипта

my $ua = LWP::UserAgent->new;

my $req = HTTP::Request->new(POST => 'http://www.perl.com/cgi-bin/BugGlimpse'); 
$req->content_type('application/x-www-form-urlencoded'); $req->content('match=www&errors=0');

my $res = $ua->request($req); 
print $res->as_string; # Ну или что там надо сделать с результатом страницы 
... 
... 
... 

А первый скрипт - он секретный или можно на него посмотреть?

Hoodoo ★★★★★
()
Ответ на: комментарий от Olegymous

А, вон оно что!

Я просто CGI не использовал никогда, только Dancer.

Спасибо за ценную информацию.

# вот и выросло поколение, да :)

Hoodoo ★★★★★
()
Ответ на: комментарий от Hoodoo

*facepalm*
У топик-стартера CGI-скрипт.
CGI.pm умеет принимать параметры из консоли

iSage ★★★★
()
Ответ на: комментарий от iSage

Как-то так получилось. Dancer же очень простой и какой-то понятный. Ну на мой вкус, я, конечно, не специалист ни по Perl, ни по программированию вообще.

Hoodoo ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.