【问题标题】:Perl CGI::Validate install / usage failsPerl CGI::Validate 安装/使用失败
【发布时间】:2016-04-12 15:30:28
【问题描述】:

我已经通过 cpan 安装了 Perl CGI::Validate 模块。由于安装错误,我不得不强制安装 - 当我尝试使用该模块时,我得到了同样的错误(不出所料)。

不能在 /usr/local/share/perl5/CGI/Validate.pm" 第 216 行使用未定义的值作为 ARRAY 引用。,referer: ...

这是验证模块的错误吗?供参考 - Validate.pm 的第 216 行(以及以下几行):

unless (scalar @{ $form{$field} } or $fields{$field}{optional}) {
    $Blank{$field} = qq(Required field "$field" contains no data);
    next;
}

有什么明显的吗?

【问题讨论】:

  • $form{$field} 未定义,因此它不能在 @{ } 取消引用中使用它。另外,thins 最后一次更新是在 1998 年。哪个测试正在打破?我会尝试在我的机器上安装它。你用的是什么系统? Perl 版本、操作系统、系统架构。
  • 再想一想,如果您查看CPAN Testers results,很明显它不适用于更新的 Perls(最近的 Perls 比 9 年新)。你应该放过这个。或者你可以尝试修复它并提交一个补丁,但由于 CGI 不再是核心,并且不鼓励使用它,我不会浪费时间。
  • 谢谢。通常建议使用什么来代替 CGI?
  • 此外,使用 Perl 时建议的表单验证方法是什么(我似乎找不到任何最近的文档或博客)。如果您能给我一些阅读材料,将不胜感激。
  • 如果你只有一个表格,CGI 就可以了。例如有metacpan.org/pod/distribution/CGI-FormBuilder/lib/CGI/…。如果您想构建更大的应用程序,请查看诸如 Dancer2、Mojolicious 或 Catalyst 之类的现代框架。另请参阅metacpan.org/pod/…,但请记住,对于 CGI 环境,如果每次调用都加载基于 Moose 的东西,它会有点慢。

标签: perl installation cgi cpan


【解决方案1】:

仅在此环境中构建工作: Windows(32 位)Perl 5.10 Linux(32 位)Perl 5.10

在其他环境中构建失败,例如 win64bit linux64bit MacOsx with Perl Ver 5.8, 5.12。 5.14、5.16、5.18、5.20、5.22 这可能是由于放弃了对 CGI 包的支持

查看此页面了解更多详情 http://code.activestate.com/ppm/CGI-Validate/

【讨论】:

  • 欢迎来到 StackOverflow!尽管这可能会提供问题的答案,但该链接将来可能会变得不可用,因此最好添加内容摘要。谢谢!
  • 感谢大家刚刚在 Stack Overflow 提供帮助,但我会一直使用您的提示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2015-02-17
  • 2021-01-02
相关资源
最近更新 更多