2013-03-07 2 views
1

У меня есть доступ к модулю Perl, который я вызываю из своего веб-кода, передавая ему параметр запроса в обычной кодированной URI форме (то есть myperl.pl?var1=val2&var2-val2&var3=val3) из AJAX или curl.Как проверить программу Perl на веб-интерфейс из командной строки?

Как проверить этот же модуль из командной строки?

ответ

6

Если это сценарий CGI, то он предположительно находит эти переменные, изучая переменную окружения QUERY_STRING; поэтому вы можете попробовать установить эту переменную из оболочки. Например, если вы используете Bash, вы могли бы написать:

QUERY_STRING='var1=val2&var2=val2&var3=val3' perl myperl.pl 

или, если вы предпочитаете:

export QUERY_STRING='var1=val2&var2=val2&var3=val3' 
perl myperl.pl 

(Обратите внимание, что вы, вероятно, будет необходимо установить другие переменные окружения, а также и возможно, стандартный ввод.)

+0

Это сработало Спасибо! –

+0

@ DougWolfgram: Добро пожаловать! – ruakh

+0

Это ужасно неполный запрос CGI. Вы даже не указали REQUEST_METHOD, что нужно проверить перед тем, как обратиться к QUERY_STRING. – ikegami

3

Использует ли он модуль CGI? Если это так, см. Раздел DEBUGGING в документах.

myperl.pl var1=val2&var2-val2&var3=val3 
1

Пока вы устанавливаете программу в качестве исполняемого файла в свойствах затем:

./program_name.pl param1 param2 param3 

должен работать. Если я неправильно прочитаю вопрос.

2

Если вы используете CGI.pm, то я верю, что функция params() возвращает параметры из командной строки.

@vars = $query->param 

Например метод

myperl.pl "var1=value1&var2=value2&var3=value3" 

пары() будет возвращен быть переменными в виде списка.

Смежные вопросы