我有一个 Perl CGI 脚本,它明显随机地发出不同的 HTML。所有输入都没有改变。例如,我会跑wget
两次并得到两个不同的结果。 CGI 由开发数据库支持,该数据库也不会改变。
我有一个调试语句,通知我相同数量的元素从数据库返回到脚本中。
坦白说,我很困惑。逻辑、DB 和输入不会改变,但输出会改变。
Ubuntu 10.04 上的 http 服务器是 apache2。 Perl 版本是 perl 5.10。
编辑:每当我从服务器上的命令行运行它时,输出都是正确的。
edit2:一些糟糕的运行看起来像是脚本的早期版本。我不thinkApache 正在缓存 CGI,但看起来它可能会获取过时的缓存版本......
您的 CGI 脚本是使用 Apache 的标准 CGI API 运行,还是使用 Apache::Registry(或 Apache2 中的 ModPerl::Registry)CGI 模拟层在 mod_perl 下运行?
我看到了与您描述的类似的效果,这是 mod_perl 的 CGI 模拟工作方式产生的结果。详细信息是在这里讨论 http://perl.apache.org/docs/1.0/guide/porting.html#Exposing_Apache__Registry_secrets.
一种解决方法是采用在脚本开头用“my”声明的任何“全局”变量,并将关键字“my”更改为“our”。
当然,您的问题可能完全不同 - 如果没有更多信息,很难说。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)