camel
Модуль HTML::Phl
Для обработки HTML-документов, содержащих инструкции с кодом Perl
О модуле Спецификация Downloads Контакты

Perl Hypertext Language  

Задача модуля 'HTML::Phl' - выбрать из текстового документа формата HTML, размещенный в нем особым образом perl-код, выполнить кое-какие манипуляции над ним и кодом HTML, объединить полученное в единый код perl и "скормить" всё это 'eval', получая на выходе сгенерированную HTML-страницу, воспроизводимую веб-браузером.

В HTML документе perl-код размещается с помощью своеобразных инструкций. У каждой такой инструкции есть начало и конец, позволяющие идентифицировать код perl в документе.

В поисках инструкций анализатор модуля обходит построчно текстовой файл HTML-документа, выделяя в нем код perl и html. По окончании работы анализатора, HTML-код преобразуется в perl-код и объединяется с ранее выделенным кодом perl из инструкций. В результате, получаем документ формата perl.

Пример:

 1 <HTML>
 2 <HEAD>
 3 <META content="text/html; charset=UTF-8" http-equiv="Content-Type">
 4 <TITLE>Пример PHL</TITLE>
 5 </HEAD>
 6 
 7 %pl use CGI;
 8 
 9 <%pl
 10    my $q = new CGI;
 11    my $test_1 = $q -> h4("Текст из модуля CGI.pm");
 12    my $test_2 = "<h4>Текст из файла *.phl</h4>";
 13 %>
 14 
 15 <%pl= "$test_1", "$test_2"; %>
 16 
 17 </HTML>

В результате работы анализатора PHL, текстовой блок в вышеуказанном примере преобразуется в следующий фрагмент:


 1  print <<'[HTML]';
 2 <HTML>
 3 <HEAD>
 4 <META content="text/html; charset=UTF-8" http-equiv="Content-Type">
 5 <TITLE>Пример PHL</TITLE>
 6 </HEAD>
 7  
 8 [HTML]
 9 use CGI;
 10  print <<'[HTML]';
 11  
 12 [HTML]
 13    my $q = new CGI;
 14    my $test_1 = $q -> h4("Текст из модуля CGI.pm");
 15    my $test_2 = "<h4>Текст из файла *.phl</h4>";
 16  print <<'[HTML]';
 17  
 18 [HTML]
 19 print("$test_1", "$test_2");
 20 
 21  print <<'[HTML]';
 22  
 23 </HTML>
 24 [HTML]



31630