在Perl中,如何在命令行上发送CGI参数?

时间:2011-09-13 14:04:07

标签: perl parameters cgi command-line-arguments

通常我从网页上获取数据,但我想从命令行发送数据以方便调试。

要获取数据,我会执行以下操作:

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

这似乎不起作用:

$ ./script.pl the_username=user1

编辑:

实际上以上的作品。检查if的{​​{1}}语句错误(使用$username代替==)。

2 个答案:

答案 0 :(得分:7)

CGI从标准输入中读取变量。

请参阅CGI.pm文档的这一部分:

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

答案 1 :(得分:6)

正如我很久以前发现的那样,您确实可以使用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'.