Допустим, у меня есть условное выражение Tcl, представляющее собой логическую комбинацию шагов.
- Будет ли выражение всегда оцениваться слева направо (исключая скобки)?
- Есливыражение станет истинным, остановится ли остальная часть оценки?
У меня есть этот фрагмент кода, который анализирует файл и условно заменяет вещи в строках.
set fp [ open "file" ]
set data [ read $fp ]
close $fp
foreach line [ split $data \n ] {
if { $enable_patch && [ regsub {<some_pattern>} $line {<some_other_pattern>} line ]} {
puts $outfp $line
<do_some_more_stuff>
}
}
Итак, моя проблемавот что, если enable_patch
не верно, я не хочу, чтобы строка была изменена.Теперь мой тест показывает, что код является детерминированным в Tcl 8.5 в Linux.Но мне интересно, не сломается ли это при других условиях / версиях / ОС.