Я пытаюсь создать форму входа в систему с помощью 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
его перед start_table
и end_table
, "start_table"
и "end_table"
будут напечатаны как strings
?
Спасибо за помощь.
Поскольку вы, вероятно, импортируете их, используя следующий оператор использования:
use CGI qw(:standard);
Как описано в CGI - с помощью функционально-ориентированного интерфейса это будет импортировать "стандартные" функции "html2", "html3", "html4", "ssl", "form" и "cgi".
Но это не включает табличные методы.
Чтобы получить их, вы можете изменить свой оператор использования следующим образом:
use CGI qw(:standard *table);
Потому что вы неразумно не use strict
включение.
Если бы у вас было, вы бы получили следующую ошибку:
Bareword "start_table" not allowed while "strict subs"
use strict
».
use strict;
, Хорошее предложение.