Команда eval
- это разумный способ сделать это, но вы можете рассмотреть возможность использования catch
, поскольку это позволит отследить любые проблемы, обнаруженные во время оценки сгенерированного кода, например, вот так:
# Generate the code somehow
set variable {puts "hello word $test_var"}
# Execute and trap problems
if {[catch $variable resultMsg]} {
# An error (or other exception) happened
puts stderr "BOOM, Error! $resultMsg"
}