【问题标题】:Are there Perl modules that can't be used in CGI?是否有不能在 CGI 中使用的 Perl 模块?
【发布时间】:2013-08-10 02:40:59
【问题描述】:

我最近遇到了一个问题,Tie::File 证明了我可以为 Perl 程序使用的最佳答案。我已经准备好使用 CGI,我需要问:是否有不能在 CGI 中使用的 Perl 模块,尤其是 Tie::File?如果有任何并发​​症,有没有办法调和它们?

【问题讨论】:

    标签: perl module cgi


    【解决方案1】:

    CGI 基本上只是一个程序,它读取 STDIN 上的请求并在 STDOUT 上喷出标头 + HTML。它并不是很特别:如果你足够努力,没有任何模块是你不能使用的。

    您甚至可以让图形(例如,GTK)的工作非常痛苦。不是你想要的。除非您是第三方供应商,否则我不乐意为其提供服务。

    但请记住,您的程序的多个副本可能同时运行(每个同时的 Web 请求一个),因此如果您使用的是平面文件,则必须处理锁定问题。

    【讨论】:

    • 这对我有很大帮助,但如果你知道的话,对 Tie::File 有什么限制吗?现在我假设它应该没问题,但如果有任何问题,我肯定需要帮助弄清楚我需要做什么才能使其在 CGI 中工作。非常感谢。
    • 没有理由它不应该工作,只要它在你要运行 CGI 的环境中可用。不用看 Tie::File,我相信它就像发送它一样简单在适当的库目录中的 foo.cgi 文件旁边。当然,最好使用 CPAN 来安装它。
    • Tie::File 带有 perl,所以它会在那里。 如果您锁定文件,它应该可以正常工作。
    【解决方案2】:

    确保您的数据文件可由您的 CGI 进程读取。我添加这个答案是因为它导致了一个非常奇怪的错误。我有一个不能从 CGI 运行的脚本。事实上,CGI 可以很好地读取数据的内容,但是 Tie::File 失败了(即使我从命令行调用它也可以正常工作)。事实证明,权限设置为 -rw-rw-r-- 这意味着世界可读,但只有我的用户和组可以写入它。由于 CGI 进程没有写权限,Tie::File 在 CGI 中失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 2018-01-21
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多