Perl — Когда вызывается ‹%method PREPARE›

Я новичок в Perl Mason.

Я столкнулся с этим с предложением помещать вызовы службы в блок PREPARE. Но когда я поместил в него свои служебные вызовы, кажется, что код внутри него никогда не выполняется сам по себе.

<%method PREPARE>

Пожалуйста, предложите, для чего предназначен вышеуказанный блок и как его использовать.


person Andy897    schedule 02.12.2015    source источник


Ответы (1)


Из руководства Mason:

Базовый класс компонента, Mason::Component, имеет всего несколько встроенных методов: handle, render, wrap, main, m и cmeta.

Основной метод содержит смесь HTML и Perl в основной части компонента.

Вы можете добавить другие методы, которые выводят HTML через раздел; эти методы автоматически имеют доступ к $self и $m.

<%method leftcol>
  <table><tr>
    <td><% $foo %></td>
    ...
  </tr></table>
</%method>

...

<% # call leftcol method and insert HTML here %>
<% $.leftcol %>

Это означает, что вы объявляете метод с именем PREPARE без каких-либо списков аргументов с помощью <%method PREPARE> и после написания тела метода вы завершаете его с помощью </%method>.

И позже где-нибудь вы будете вызывать его, используя <% $.PREPARE %>. Для получения дополнительной информации см. Руководство Мейсона.

person Arunesh Singh    schedule 02.12.2015