如何使用Perl CGI收集ARGV?

时间:2015-02-10 02:15:09

标签: perl cgi

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

2 个答案:

答案 0 :(得分:2)

  

如何使用Perl CGI收集ARGV?

@ARGV没有去任何地方,但CGI不使用命令行参数,因此没有要收集的命令行参数。

  

我可以在Perl CGI脚本中插入system($command)吗?

答案 1 :(得分:1)

您可以通过检查您是否连接到终端来双重打印脚本:

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

您必须通过在输出任何内容之前添加内容标题来调整输出以在CGI模式下工作。

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