Если вы не используете очень старую копию CGI::Pretty
, ваш код выдает это предупреждающее сообщение при запуске
CGI :: Pretty устарела и будетудалено в будущем выпуске.Пожалуйста, смотрите https://github.com/leejo/CGI.pm/issues/162 для получения дополнительной информации на C: /Strawberry/perl/site/lib/CGI/Pretty.pm строка 21.
Важно, чтобы вы не игнорировали предупреждениесообщения: они здесь, чтобы помочь вам
Вы также получите три появления этого предупреждения
Нечетное количество элементов в анонимном хеше ...
Это потому, что вы используете {"class='inforno'"}
, который является неправильным синтаксисом для анонимного хэша
Поскольку CGI устарел, а части библиотеки HTML, генерирующие HTML, особенно недовольны,Лучше всего использовать систему шаблонов.Одной из самых популярных систем шаблонов является модуль Template::Toolkit
, и этот код показывает вам, как использовать его для достижения того, чего вы хотите
Perl
use strict;
use warnings 'all';
use Template;
my @names = qw/ Foo Bar Moo /;
my $template = Template->new;
binmode STDOUT;
$template->process('list.html', { list => \@names })
or die $template->error;
list.html
[% FOREACH name IN list %]
<li>
<div class='inforno'>
<img src='inforno'>
</div>
<div class='inforno'>
<a href='#' class='inforno'>[% name %]</a>
</div>
<span class='inforno'>
<a href='#' class='inforno'>Edit user</a>
</span>
</li>
[% END %]
output
<li>
<div class='inforno'>
<img src='inforno'>
</div>
<div class='inforno'>
<a href='#' class='inforno'>Foo</a>
</div>
<span class='inforno'>
<a href='#' class='inforno'>Edit user</a>
</span>
</li>
<li>
<div class='inforno'>
<img src='inforno'>
</div>
<div class='inforno'>
<a href='#' class='inforno'>Bar</a>
</div>
<span class='inforno'>
<a href='#' class='inforno'>Edit user</a>
</span>
</li>
<li>
<div class='inforno'>
<img src='inforno'>
</div>
<div class='inforno'>
<a href='#' class='inforno'>Moo</a>
</div>
<span class='inforno'>
<a href='#' class='inforno'>Edit user</a>
</span>
</li>