|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 15 Jun 2002 14:06:21 To : Artem Chuprina Subject : Re: вопрос по mason -------------------------------------------------------------------------------- Artem Chuprina wrote: > Здравствуй, vilfred. > v> ну дык вот оно все выводит, но почему-то перед хедером html и не в том > v> месте таблицы где нужно: > .... > v> и прямо этот весь текст пишет в html. > > v> Чего это может быть за баг? > > Бардак с буферизацией. Заголовок и содержимое выводятся либо разными > процессами, либо через разные файлхендлы, направленные в одно и то же место. Действительно бардак, но не с хэндлами и не с процессами. Дело в том, что HTML::Mason скрипт вообще ничего не выводит (и не должен). Он есть по сути mod_perl скрипт (читай - функция) которая выполняет какие-то действия, потом интерпретирует шаблон HTML страницы и складывает его в переменную. И только по завершении функции апач начинает вывод. Сначала хэндлер, а потом документ. При хорошем стиле программирования вывод из кода вообще не потребуется. В данном случае строка: % print join "<p>" => @m; должна быть записана как: <% join '<p>', @m %> или (не совсем точный эквивалент): % foreach (@m) { <% $_ %><p> % } Hо если где-то когда-то все же "вывод" из кода потребуется и избежать этого нельзя, то выводить надо через функцию на которую указывает $_out, т.е. $_out->('<b>This damn text</b>'); Андрей P.S. Избегайте длинных блоков строк начинающихся с %. Для этой цели есть таг <%perl> --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/528462ecc4a4.html, оценка из 5, голосов 10
|