如何以编程方式创建新的CGI脚本并立即运行?

Spa*_*ace 0 perl cgi

我编写了一个Perl脚本来读取配置文件并创建CGI脚本.这工作正常,我在终端上获得CGI脚本的输出,我可以在网页上执行CGI脚本.下面是我的示例脚本.

#!/usr/bin/perl -w

use strict;
use Text::Template;

my $conf = "test.cfg";

open CFG, $conf or die "Could not open config file";
my @rawConfig = <CFG>;
my $config = eval "{".join("",@rawConfig)."}";

my $template = Text::Template->new(TYPE => 'FILE',  SOURCE => 'test.cgi.tmpl');
my $result = $template->fill_in(HASH => $config);
print $result;
Run Code Online (Sandbox Code Playgroud)

通过使用这个我必须保存每个CGI并单独执行.我需要帮助来修改此代码,以便我可以直接在Web上执行此脚本并在网页上显示输出.

bri*_*foy 6

这是一个非常非常可怕的事情,我通常建议不要做任何创造新程序的事情,并让世界在没有人的地方运行它们.

但是,我怀疑您可能正在这样做,因为您创建的CGI脚本只需要不同的配置数据,并且您已将其存储在脚本本身中.这只是一个猜测,但它是这种事情的通常动力.答案是不在脚本中存储配置数据.我在Mastering Perl中有一整章关于不在代码中存储配置.

我很努力地避免你所描述的情况.

(SO有扰流标签吗?)

如果您确实需要这么做(并且几乎不是这种情况),那么您将从原始进程创建文件,然后发出内部重定向到新的CGI脚本.你是如何做的那样是你的家庭作业,因为我不打算把枪弹给你.