Моя программа на C++ вызывает через Pipe Perl-интерпретатор, передает ему Perl-скрипт и потом принимает результат работы скрипта.Как мне Perl-интерпретатору в этом случае передать помино скрипта еще и переменные окружения Web-сервера, такие, как: REQUEST_METHOD, QUERY_STRING и т.д.?
Передаваемые переменные окружения моя C++ программа должна устанавливать сама.
>Моя программа на C++ вызывает через Pipe Perl-интерпретатор, передает ему Perl-скрипт и
>потом принимает результат работы скрипта.
>
>Как мне Perl-интерпретатору в этом случае передать помино скрипта еще и переменные
>окружения Web-сервера, такие, как: REQUEST_METHOD, QUERY_STRING и т.д.?
>
>Передаваемые переменные окружения моя C++ программа должна устанавливать сама.
Указывать переменные окружения в качестве опций перл-скрипта.
>Указывать переменные окружения в качестве опций перл-скрипта.Пожалуйста, напишите пример как это делать? Заранее спасибо.
>>Указывать переменные окружения в качестве опций перл-скрипта.
>
>Пожалуйста, напишите пример как это делать? Заранее спасибо.
#include <stdlib.h>
main()
{
printf("%s",system("/usr/bin/perl script.pl 'param1' 'param2'"));
}
>#include <stdlib.h>
>main()
>{
>printf("%s",system("/usr/bin/perl script.pl 'param1' 'param2'"));
>}Это не подходит. Таким образом вы передаете Perl-скрипту параметры командной строки, а не переменные окружения.
В перле параметры командной строки содержатся в массиве @ARGV, а переменные окружения - в массиве @ENV.
Мне-то как раз надо заполнить массив @ENV, но БЕЗ вмешательства в исходный код Perl-скрипта.
system("ENV1=test1 ENV2=test2 /usr/bin/perl script.pl");или заюзать putenv()