gpt4 book ai didi

perl - 如何决定是否使用 Perl CGI 与常规 HTML 输出

转载 作者:行者123 更新时间:2023-12-04 16:35:51 26 4
gpt4 key购买 nike

我发现在创建 HTML 页面时不再推荐使用 CGI,但我搜索了关于在哪里使用 CGI 的答案。是否合适引起了比答案更多的困惑。

如果我的问题很基本,我深表歉意,但我希望我的问题的答案将有助于澄清一些事情。

我被告知不要创建这样的表单:

sub output_form {
my ($q) = @_;


print $q->start_form(
-name => 'main',
-method => 'POST',
);

print $q->start_table;

print $q->Tr(
$q->td('Update#:'),
$q->td(
$q->textfield(-name => "update_num", -size => 02)
)
);

print $q->Tr(
$q->td('Date:'),
$q->td(
$q->textfield(-name => "date",-id => "datepicker")
)
);

print $q->Tr(
$q->td('Location:'),
$q->td(
$q->textfield(-name => "location", -size => 50)
)
);

print $q->Tr(
$q->td('Queue:'),
$q->td(
$q->textfield(-name => "queue", -size => 50)
)
);

print $q->Tr(
$q->td('ETO:'),
$q->td(
$q->textfield(-name => "eto", -size => 50)
)
);

print $q->Tr(
$q->td('CAD#:'),
$q->td(
$q->textfield(-name => "cad", -size => 50)
)
);

print $q->Tr(
$q->td('Remarks:'),
$q->td(
$q->textfield(-name => "remarks", -size => 50)
)

但是,如果我使用常规 HTML 页面创建这样的表单,我是否能够通过 Perl 脚本与用户输入进行交互?

最佳答案

更新

我再次查看了您的问题,看来您已经对 CGI 提供的内容变得如此根深蒂固,以至于迷失了方向

But if create such a form using a regular HTML page, will I be able to interact with user input from a Perl script?

无论您的程序执行什么操作,也无论如何执行,它都必须将普通的 HTML 页面发送回发出原始请求的浏览器。 CGI 的各种 start_formstart_tableTrtd 等功能并没有什么神奇之处。 变得可用:它应该是使用 Perl 语法生成 HTML 的更方便的方法

生成 HTML 与 CGI 协议(protocol)无关,许多人认为在名为 CGI 的模块中包含此类功能是不合适的。这会导致诸如 HTML::Tiny 之类的事情,提供了类似于CGI

的HTML构造功能

其他函数的发展仅仅提供对 CGI 协议(protocol)的支持,例如 CGI::Minimal

还有很多关于原始CGI.pm两个方面单独实现的例子,但是您关心是否可以通过HTTP进行交互

再说一次,CGI.pm 提供的功能没有什么特别。您应该从命令行运行一个旧的 CGI 程序,看看它是否只生成您在调用中指定的 HTML 字符串,并且您可以以任何方便的方式创建它

一旦构建了 HTML 并将其发送到客户端,消息的构建方式就没有什么区别了。该页面将显示在浏览器上,并且为用户提供请求更多信息的机会

我希望这对您来说更清楚?



看看CGI::Alternatives对于 CGI 以外的选项

但是你谈论的是构建 HTML,这与 CGI 无关,对该模块的主要批评之一是它将太多的功能包装到一个盒子中

您应该专注于使用模板包来构建 HTML,最流行的模板包之一是 Template::Toolkit

您可能有额外的 CSS 样式和 JavaScript 智能,它们应该作为单独的文件从 HTML 链接

关于perl - 如何决定是否使用 Perl CGI 与常规 HTML 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39518066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com