我正在尝试使用CGI
来构建一个包含perl
的登录表单。
sub show_login_form{
return div ({-id =>'loginFormDiv'}),
start_form, "\n",
CGI->start_table, "\n",
CGI->end_table, "\n",
end_form, "\n",
div, "\n";
}
我想知道为什么我不需要在CGI->
之前添加start_form
,但如果我在start_table
和end_table
之前不添加"start_table"
,{{1} }和"end_table"
打印为strings
?
感谢您的帮助。
答案 0 :(得分:2)
因为您可能使用以下使用声明导入它们:
use CGI qw(:standard);
如CGI - Using the function oriented interface中所述,这将导入"标准"功能,' html2',' html3',' html4',' ssl','形式'和' cgi'。
但这不包括表格方法。
要获得它们,您可以将use语句修改为以下内容:
use CGI qw(:standard *table);
因为你不明智地没有开启use strict
。
如果有,您会收到以下错误:
Bareword "start_table" not allowed while "strict subs"