Задача разделителей - отделить указатель инструкции от имени блока.
В отличие от ':', разделитель '=' изменяет в анализаторе интерпретацию кода.
При этом, результат применения разделителя '=' в однострочном и многострочном блоках различаются.
| 1 | %pl my $test = "<b>тест</b>"; |
| 2 | |
| 3 | 1. Переменная '<%pl= $test %>' внутри однострочного блока. |
| 4 | <br><br> |
| 5 | |
| 6 | <%pl=name1 |
| 7 | 2. Переменная '$test' внутри |
| 8 | многострочного блока '<b>$phl_blok[1]</b>' (разделитель '='). |
| 9 | %> |
| 10 | <br><br> |
| 11 | |
| 12 | <%pl:name2 |
| 13 | print "3. Переменная '$test'"; |
| 14 | print "внутри многострочного блока '<b>$phl_blok[2]</b>' (разделитель ':')."; |
| 15 | %> |
Код после анализатора:
| 1 | my $test = "<b>тест</b>"; |
| 2 | print <<'[HTML]'; |
| 3 | |
| 4 | [HTML] |
| 5 | print <<'[HTML]' =~ /(.*)/; |
| 6 | 1. Переменная ' |
| 7 | [HTML] |
| 8 | print($test); |
| 9 | print <<'[HTML]'; |
| 10 | ' внутри однострочного блока. |
| 11 | [HTML] |
| 12 | print <<'[HTML]'; |
| 13 | <br><br> |
| 14 | |
| 15 | [HTML] |
| 16 | print <<"[HTML]"; |
| 17 | 2. Переменная "$test" внутри |
| 18 | многострочного блока "<b>$phl_blok[1]</b>" (разделитель "="). |
| 19 | [HTML] |
| 20 | print <<'[HTML]'; |
| 21 | <br><br> |
| 22 | |
| 23 | [HTML] |
| 24 | print "3. Переменная '$test'"; |
| 25 | print "внутри многострочного блока '<b>$phl_blok[2]</b>' (разделитель ':')."; |
▼
Результат
1. Переменная 'тест' внутри однострочного блока.
2. Переменная 'тест' внутри
многострочного блока 'name1' (разделитель '=').
3. Переменная 'тест'внутри многострочного блока 'name2' (разделитель ':').