1

perl スクリプトと同じディレクトリにある別の CGI プログラムからの出力をキャプチャする必要があります。

私は試した

my $output = `./cgi_name.cgi?param1=some_string&param1=some_string`;

しかし、param1=some_string¶m1=some_string are not valid のようなエラーが発生しました。cgi_name.cgi はコマンドライン引数をサポートしていません。

4

1 に答える 1

3

cgi_name.cgiPerl スクリプトはモジュールを使用していますCGIか? 次に、コマンド ラインから実行されているか、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.cgiPerl スクリプトでなくても、CGIモジュールを使用していなくても、試してみる価値があるかもしれません。

于 2012-12-17T17:48:33.040 に答える