У меня есть следующий основной код:
proc test {} {
set my_var2 3
foreach iter {1 2 3} {
set my_var1 4
set my_var2 5
puts "Inside: $my_var1 $my_var2\n"
}
puts "outside $my_var1, $my_var2\n" ;#WHY IT DOES NOT GIVE ERROR HERE!
}
test ;#calling the function
Вывод программы такой:
Inside: 4 5
Inside: 4 5
Inside: 4 5
outside 4, 5
Теперь моя путаница в том, что my_var1
определяется только в локальной области цикла foreach, почему его значение доступно даже вне цикла? Другими словами, что определяет область действия переменной в Tcl?
Большое спасибо за помощь!