Я испытываю странное поведение с набором шаблонов, скажем, у меня есть структура данных (определенная в perl и переданная в качестве параметра):
( { FLAG => 1, some => data}, { some => data}, etc )
и в шаблоне у меня есть цикл вроде
[FOR ITEMS]
[IF (FLAG) ]
do something
[ELSE]
do something else
[END]
[END]
шаблон, кажется, никогда не вводит else, единственный способ заставить его ввести else - это изменить данные:
( { FLAG => 1, some => data}, { FLAG => 0, some => data}, etc )
так, чтобы оно оценивалось как ложное.
Однако, если я тогда изменю структуру данных на
( { some => data}, { some => data}, etc )
Он всегда входит в else (потому что он считает undef ложным).
Похоже, что в следующей итерации существует некоторое «переполнение» переменных, остающихся в области видимости, если только они не будут перезаписаны, это ожидаемое поведение? и если да, то где это задокументировано?
EDIT:
Позже я обнаружил, что это была другая проблема, вызвавшая описанное выше поведение, потому что я использовал «ELSEIF», а не правильный «ELSIF» в другом месте шаблона.
Если вы сомневаетесь, проверьте решение, предложенное jira, которое решило проблему, описанную мной в моем первоначальном посте.