我需要从与我的 perl 脚本位于同一目录中的另一个 CGI 程序中捕获输出。
我试过
my $output = `./cgi_name.cgi?param1=some_string¶m1=some_string`;
但我得到一个错误,例如 param1=some_string¶m1=some_string are not valid。cgi_name.cgi 不支持命令行参数。
我需要从与我的 perl 脚本位于同一目录中的另一个 CGI 程序中捕获输出。
我试过
my $output = `./cgi_name.cgi?param1=some_string¶m1=some_string`;
但我得到一个错误,例如 param1=some_string¶m1=some_string are not valid。cgi_name.cgi 不支持命令行参数。
是否cgi_name.cgi
有使用该CGI
模块的 Perl 脚本?然后它可以判断它是从命令行运行还是通过 CGI 运行,在前一种情况下,它将命令行参数视为键值对。
# cgi-or-cli.cgi
use CGI;
use Data::Dumper;
print Dumper(CGI->new);
$ perl cgi-or-cli.cgi field1=value1 foo=bar
$VAR1 = bless( {
'.parameters' => [
'field1',
'foo'
],
'use_tempfile' => 1,
'.charset' => 'ISO-8859-1',
'.fieldnames' => {},
'param' => {
'field1' => [
'value1'
],
'foo' => [
'bar'
]
},
'escape' => 1
}, 'CGI' );
因此,值得尝试将您的键值对作为单独的命令行参数传递:
my $output = `./cgi_name.cgi param1=some_string param1=some_string`;
cgi_name.cgi
即使不是 Perl 脚本或不使用该CGI
模块,它仍然值得一试。