Задача модуля '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] |
▼
Результат
Пример PHL
Текст из модуля CGI.pm
Текст из файла *.phl