如何使用 Perl CGI 收集 ARGV?

how to collect ARGV using Perl CGI?

我想使用 CGI.pm 从我的网站 运行 一个脚本 - 我 运行ning 的脚本通常是 运行 来自命令行,需要几个命令线路 ARGV 输入。我如何使用 CGI.pm 来处理这个问题? - 我可以在 Perl CGI 脚本中插入一个 system($command) 吗?脚本可以在这里看到 - http://www.ncbi.nlm.nih.gov/IEB/ToolBox/C_DOC/lxr/source/doc/blast/web_blast.pl

how to collect ARGV using Perl CGI?

@ARGV 没去任何地方,但是 CGI 不使用命令行参数,所以没有命令行参数可以收集。

can I insert a system($command) into Perl CGI script?

是的。

您可以通过检查您是否已连接到终端来 dual-purpose 脚本:

if (-t STDOUT) {
    # Command LIne mode, use @ARGV;
}
else {
    # CGI mode, get ARGV equivalent from CGI->param
}

您必须调整输出以在 CGI 模式下工作,方法是在输出任何内容之前添加内容 headers。

如果您在网页中使用 system($foo),请确保控制 $foo 内容的逻辑是安全的,否则您可能会被黑。