【发布时间】:2017-06-13 16:09:13
【问题描述】:
好吧,十年来第一次使用 Perl,有点生疏。从那时起可能会考虑一些更新(天才吧?)
好的,这是 Perl 5,版本 16,subversion 3 x86_64-linux-thread-multi,在 AWS micro 上有 29 个注册补丁。
Perl 自带的,我只是 yum 安装了 perl-CGI perl-Data-Dumper
#!/usr/bin/perl
use CGI; # load cgi routines
my $q = CGI>new; # cgi object
print $q->header(),
$q->start_html("Hello World"),
$q->h1('Hello'),
$q->end_html;
~
当我一点一点地构建程序时,这似乎是一个简单明了的事情。但是如果我在命令行(或浏览器)上运行它会出错。
在创建第 4 行时,如果没有包或对象引用,则无法调用方法“header”。
第 4 行是打印 $q->header(); “create”是文件名。
有什么想法吗?让我了解 Perl 2017 的最新动态?我的问题,生锈总是非常简单。
【问题讨论】:
-
“让我了解 Perl 2017 的最新情况?” —
use strict; use warnings;(嗯,这是 Perl 2000,尽管它在 2017 年仍然适用)& metacpan.org/pod/distribution/CGI/lib/… -
@Quentin:关于从核心中删除 CGI 的观点是没有实际意义的。他使用的是 Red Hat 版本的 Linux,所以无论如何都没有包含在内。
-
如果 CGI 已被移除,是否有更好的库?我不太喜欢 CGI,我有自己的 html 库。
-
CGI 仍然有效。而且,正如您所见,即使它不是标准安装的一部分,您也可以轻松安装该模块。但请不要使用 CGI.pm 中的 HTML 生成功能。最好使用templating system 将您的 HTML 与您的代码分开。如果您想在 Modern Perl Web Dev 的道路上走得更远,请从阅读 CGI::Alternatives 开始。
-
太好了,那我应该使用 CGI 进行 PUSH 和 GET 吗?你说不用于 HTML 生成,所以我询问它应该用于什么。