作業中のプロジェクトでは、ある Perl/CGI スクリプトを別のスクリプトから呼び出す必要があります。テストに使用しているスクリプトの非常に単純化されたバージョンは次のとおりです (実際のスクリプトは再帰を使用しませんが、この方法では多くのコードをコピーして貼り付ける必要はありません)。
#!/usr/local/bin/perl
use CGI qw(:standard);
use POSIX 'setsid';
$|=1;
print "Content-type: text/html\n\n";
@names = param;
print "@names";
if(defined(param('submit'))){
#delete_all();
system('perl testParams.pl abc=123');
exit(0);
} else{
print "NO SUBMIT PARAM";
}
このスクリプトが行うべきこと:
- すべてのパラメータの名前を出力します。
- 送信パラメータが定義されている場合は、スクリプトを再度実行しますが、「abc」というパラメータを使用してください。
- 「submit」パラメータが定義されていない場合は、「NO SUBMIT PARAM」と出力します。
スクリプトが実際に行うこと:
- すべてのパラメータの名前を出力します。
- 「submit」パラメーターが定義されている場合は、元のスクリプトを実行したときと同じパラメーターを使用してスクリプトを再度実行します。
- 「submit」パラメータが定義されていない場合は、「NO SUBMIT PARAM」と出力します。
スクリプトの実行時に、Perl/CGI が新しいパラメーターを無視し、代わりに古いパラメーターを送信する原因は何ですか?