Почему HTML::Template не работает?
У меня есть два файла login.pl и index.html. Я пытаюсь получить вход от пользователя в login.pl и отправить его в index.html, чтобы отображались имя и время пользователя. Мне сказали, что для этого мне нужно использовать HTML:Template, я посмотрел учебники по CPAN, но у них был очень простой пример, который не очень помог. Также я не могу заставить скаляр (местное время) работать в html-файле, так как это функция cgi. Я опубликую код для обоих файлов ниже, может кто-нибудь сказать мне, что я делаю неправильно и как это исправить?
login.pl
#!/usr/bin/perl -wT
use strict;
use HTML::Template;
use CGI qw(:standard);
my $template = HTML::Template->new( filename => 'dashboard.html' );
my %names = map { $_ => 1 } param;
my $open = "1234";
sub windowLayout() {
return (
header,
start_html("Input Form"),
start_form,
"Please enter your username:",
textfield( -name => 'username', -maxlength => 20 ),
p,
"Please enter your password:",
password_field( -name => 'password', -maxlength => 20 ),
p, submit,
hr;
);
}
if ( $names{username} and $names{password} ) {
my $username = param("username");
my $password = param("password");
$template->param( USERNAME => $ENV{"username"} );
if ( $password ne $open ) {
print
windowLayout(),
end_form,
p( { -style => 'Color: red;' }, "Sorry wrong password!" );
print end_html;
} else {
print "Content-Type: text/html\n\n", $template->output;
#print redirect("index.html");
}
} else {
print
windowLayout(),
end_html;
}
dashbooard.pl
<!DOCTYPE>
<html>
<head><title>Testing</title></head>
<body>
My user name is: <TMPL_VAR NAME=USERNAME>
The time is now: #have no idea how to get scalar(localtime) in HTML
</body>
</html
РЕДАКТИРОВАТЬ:
Я получаю этот вывод, и похоже, что я все еще в login.pl
Мое имя пользователя: Время пришло:
РЕДАКТИРОВАТЬ 2:
Пун в $ in $template->output;