BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE
G_Z 08.12.2015 01:39
/ 08.12.2015 01:50
Вот уже десять лет как есть полезная, но странная штука — локальный result.
Все эти годы лично я, натыкаясь на прекрасную возможность использования этой штуки для генерации вывода без пробельных символов, раз за разом наступал на грабли с непробельными символами.
Требование к исключению которых, на мой взгляд, ломает всю логику этой удобной возможности.
Зачем именно так — неведомо, и из нескольких
пояснений PAFа яснее не становится.
Хотя когда-то сам находил
taint-объяснения.
Хочу собрать строку из кусочков, будь то SQL-запрос или URL.
Хочу использовать удобное форматирование и комментарии.
@print[a;b;c][result]
^if(…){/$a}
/
^if(…){
$b/
}{
/$b
}
^if(…){:$c}
И получить на выходе монолитную строку без пробельных символов.
Да ещё и не писать $result[] вокруг результата, что тоже удобно.
Но нет, BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE и начинаются костыли, после которых уже и не рад, что решил использовать [result].
@print[a;b;c][result]
$slash[/]
$colon[:]
^if(…){${slash}$a}
$slash
^if(…){
${b}$slash
}{
${slash}$b
}
^if(…){${colon}$c}
Либо
@print[a;b;c]
$result[
^if(…){/$a}
/
^if(…){
$b/
}{
/$b
}
^if(…){:$c}
]
$result[^result.match[\s+;g;]]
и тогда вообще неясно, зачем [result] нужен.
Зачем оно работает вот так?
Почему нельзя в [result]-режиме просто выкидывать пробельные символы и разрешить писать всё, что хочется?
«Жизнь — боль»?
- BAD_NONWHITESPACE_CHARACTER_IN_EXPLICIT_RESULT_MODE, G_Z [M] 08.12.2015 01:39 / 08.12.2015 01:50