重新启动的Perl CGI脚本
问题描述:
周围搜索后,我发现这个命令exec($^X, $0, @ARGV);
其重新启动一个Perl脚本。但是,当我这样做时,我的脚本正常运行,但具有预期输出的前面。我想知道这是否是重新启动我的perl cgi脚本的正确方法。重新启动的Perl CGI脚本
编辑:
elsif (defined param("again")){
exec($^X, $0, @ARGV);
exit;
}
当脚本重新启动它的应该打印My guess is: 50
但它打印Content-Type: text/html My guess is: 50
答
你的输出,它被用作标题(不显示)的第一次,第二次作为内容的一部分。
添加参数@ARGV,这样就可以检查脚本是否已经重新启动,因此,头不应该再被发送。
编辑:我刚才看到了什么是您给这个脚本用途。在网络游戏环境中,刷新,重定向或仅提供链接或表单提交以再次运行脚本当然更可取。同样的HTTP连接内
解决方案这样的,在那里你重新启动脚本(或运行其他)而作出的主力或监视脚本的意义,例如保持内存占用低。但它是一种非常罕见的动物。
没有更多的信息,就很难说了。但可能不会。回溯一下并解释你的问题以及你作为解决方案所尝试的内容,并且我们可能会给出答案。参见[问] – Sobrique
@Sobrique我的问题是重新启动脚本,我试图解决的办法是'EXEC($^X,$ 0 @ARGV);' – gettingthere
这听起来极像是一个[XY问题(HTTP:// meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - 重新启动这样的脚本没有什么意义,尤其是在产生脚本的'cgi'上下文中通过你的httpd。 – Sobrique