<% $dbh->disconnect; %> <!-- отсоединяемся от БД -->
<body> <html> <!-- конец шаблона -->
HTML-страница, сформированная в результате выполнения программы, приведена на рис. 18.2. При необходимости несложно расширить функциональность этой программы, например, добавить поиск по любой из колонок таблицы.
Рис. 18.2.Web-интерфейс к базе данных
Дальнейшая унификация ресурсов сети Интернет базируется на применении XML - расширяемого языка разметки (eXtensible Markup Language), стандартизованного консорциумом W3C. XML описывает правила создания прикладных языков разметки, называемых XML-приложениями (XML application). К настоящему времени созданы сотни прикладных языков на основе синтаксиса XML. Среди наиболее распространенных языков можно упомянуть CML (описание химических данных), GML (описание географических данных), Jabber (обмен сообщениями), MathML (описание математических формул), RDF (описание информационных ресурсов), SMIL (описание мультимедийных презентаций), RSS (аннотации содержимого сайтов), SVG (масштабируемая векторная графика), WDDX (обмен данными), WebDAV (web-папки), XML/EDI (обмен бизнес-данными), XML-RPC (удаленный вызов процедур), XUL (описание пользовательского интерфейса). Использование единой грамматики XML для прикладных языков разметки позволяет обрабатывать их унифицированными программными средствами. Языки разметки на основе XML создаются преимущественно для описания данных в различных областях знаний. В формате XML данные представлены в текстовом виде, чаще всего с использованием кодировки UTF-8, поэтому они без труда пересылаются по сети и обрабатываются
программами на всех компьютерных платформах. Специальный расширяемый язык стилей XSL (eXtensible Style Language) создан для унифицированного преобразования XML в другие форматы, например, для визуального представления XML-данных в виде документов в формате HTML или RTF.
В Perl имеется богатый набор средств для работы с разными языками разметки на основе XML: это и универсальные инструменты, и специализированные модули для конкретных XML-приложений. Использованию XML-технологий в программировании на языке Perl посвящена книга [19] и ее перевод [45], а в книге [30] рассматривается работа с графикой в формате SVG. Для примера познакомимся с библиотекой SVG, предназначенной для программного создания масштабируемых векторных изображений в формате XML. Чтобы составить представление об этом формате и проиллюстрировать возможности этой библиотеки, напишем CGI-программу, динамически формирующую документ SVG. Она будет показывать на простой диаграмме распределение данных о посещаемости сайта по основным доменам:
use CGI qw/:standard/; # применим библиотеку CGI
use SVG; # и SVG
my $p = CGI->new; # создадим объект CGI и зададим
print $p->header(-type=>'image/svg+xml'); # тип документа
# создадим объект SVG размером 400 на 300 пикселей
my $svg= SVG->new(width=>400, height=>300);
# разместим синий текст, начиная с координат 32,32
$svg->text(x=>32,y=>32,
style=>"font-size:15;fill:blue"
)->cdata('Посещаемость сайта: распределение по доменам');
# вызовем подпрограмму для размещения 4-х полос графика
bar(20, 50, 'red', 55, '.RU');
bar(20, 80, 'blue', 24, '.COM');
bar(20, 110, 'green', 12, '.ORG');
bar(20, 140, 'black', 9, 'прочие');
# разместим текст с версиями программных средств:
$svg->text(x=>12,y=>200,
)->cdata("Perl $] + ". # версия Perl
"SVG.pm $SVG::VERSION + ". # версия модуля SVG
"CGI.pm $CGI::VERSION"); # версия модуля CGI
my $out = $svg->xmlify; # отформатируем текст XML
print $out; # и отправим его браузеру
sub bar { # подпрограмма вывода одной строки графика,
# которой передаются координаты, цвет, % и заголовок