EmbPerl
EmbPerl
Программа EmbPerl создана позднее, чем ePerl, и более ориентирована на HTML и Web. Она позволяет использовать дополнительные «метакоманды» - теги в стиле HTML, обрабатываемые EmbPerl, - которые вводят в сам HTML возможности ветвления и другие элементы программирования .
В качестве примера встраивания кода Perl в файл HTML рассмотрим форму для вывода данных из базы данных по акулам, приводившуюся выше. Мы будем использовать в нашем примере EmbPerl, но поскольку используется стандартный Perl, код практически одинаков для различных средств встраивания Perl.
<HTML>
<НЕАD><ТIТLЕ>Результаты поиска акул</title></head>
<BODY>
<Н1> Вот акулы, удовлетворяющие условиям поиска...</h1>
<р>
[-
use Msql;
use CGI qw(:standard);
$dbh = Msql->connect; $dbh->selectdb("sharks");
%age = ( '0' => 'Молодые',
'1' => 'Взрослые',
'2' => 'Старые'
);
# Начинаем построение запроса. В результате типичный запрос
# может выглядеть так:
# SELECT * FROM SHARK WHERE SPECIES='Isurus Paucus' AND AGE=2
$query = "select * from sharks where ";
if (Sspecies or Sage or $location) {
$query .= " where ";
$query .= join(" and ", param); }
Sresult = $dbh->query($query);
if (result == -1) {
echo("Error : " . Msql->errmsg . "\n");
exlt(l);
}
Snumresults = $result->numrows;
-]
<UL>
[$if (! Snumresults ) $]
<Н2>Результатов не найдено </h2> [SelseS]
[Swhile (%shark = $Msql->fetchhash($result)) $]
<LI>
<IMG SRC="graphics/shark[+$shark{'id'}+].gif" ALIGN=LEFT>
<В>Вид:</b> [+$shark{'species'}+]<br>
<В>Возраст:</b> [+$age{$shark{'age'}}+]<br>
<В>Район </b> [+$shark{'location'}+]<br>
[;endwhile$] [;endif] </ul>
<A HREF="search.html">Hoвый поиск </а>
</body></html>