«__LAST__» (в tmpl_if) не всегда работает в Perl HTML :: Template - PullRequest
0 голосов
/ 21 ноября 2018

В моем файле tmpl есть следующая строка:

<td><TMPL_LOOP SIGNS><TMPL_VAR LEFT_SIGN> - <TMPL_VAR RIGHT_SIGN><TMPL_UNLESS __LAST__></br></TMPL_UNLESS></TMPL_LOOP></td>

При обновлении страницы она переключается между обоими дисплеями (иногда обновление приводит к тому же дисплею и не обязательно его переключает):

Display1 (новая строка между каждой строкой - как и ожидалось):

AA1 - AA2
BB1 - BB2
CC1 - CC2 

Display2 (нет новой строки между последним элементом):

AA1 - AA2
BB1 - BB2CC1 - CC2

Недавно я обновил Perl до версии 5.24.3 и я подозреваю, что __LAST__ перестанет работать должным образом (не всегда распознавать последний элемент в цикле).Я использую модуль "HTML :: Template".

Я изменил HTML (__FIRST__ вместо __LAST__):

<td><TMPL_LOOP SIGNS><TMPL_UNLESS __FIRST__></br></TMPL_UNLESS><TMPL_VAR LEFT_SIGN> - <TMPL_VAR RIGHT_SIGN></TMPL_LOOP></td>

, и он работает всегда, как и ожидалось.

Я не нашел ссылки на эту проблему.

Это действительно ошибка с __LAST__?

1 Ответ

0 голосов
/ 21 ноября 2018

Если вы используете HTML :: Template, проверьте документацию .Возможно, вам потребуется установить параметр loop_context_vars и использовать строчные буквы __last__ или __first__.Я думаю, что код с __FIRST__ работает, потому что он всегда выводит <br>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...