В Perl, как я могу отправить параметры CGI в командной строке? - PullRequest
6 голосов
/ 13 сентября 2011

Обычно я получаю данные с веб-страницы, но я хочу отправить их из командной строки для облегчения отладки.

Чтобы получить данные, я делаю что-то вроде:

my $query = new CGI;
my $username = $query->param("the_username");

thisне похоже на работу:

$ ./script.pl the_username=user1

РЕДАКТИРОВАТЬ:

На самом деле выше работает.Оператор if, который проверил $username, был неверным (используя == вместо eq).

Ответы [ 2 ]

7 голосов
/ 13 сентября 2011

CGI считывает переменные из стандартного ввода.

См. Эту часть документации CGI.pm:

http://search.cpan.org/dist/CGI/lib/CGI.pod#DEBUGGING

6 голосов
/ 13 сентября 2011

Как я выяснил давно, вы действительно можете передать параметры строки запроса в скрипт, используя CGI.pm . Я не рекомендую это в качестве предпочтительного метода отладки (лучше иметь реплицируемый материал, сохраняемый в файлах, которые затем направляются в STDIN скрипта), однако он работает:

#!/usr/bin/env perl

use warnings; use strict;

use CGI;

my $cgi = CGI->new;

my $param_name = 'the_username';

printf(
    "The value of '%s' is '%s'.\n",
    $param_name, $cgi->param($param_name)
);

Выход:

$ ./t.pl the_username=yadayada
The value of 'the_username' is 'yadayada'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...