trace variable proc method

proc watch {varnames key op} {
 if {$key != ""} {
  set varname ${varnames}($key)
  }
 upvar $varnames vari
 puts "$varnames is $vari (operation $op)"
 }
# ---------------------------------------
trace variable valuea w watch
trace variable valuea r watch
# ---------------------------------------
puts "Give me a big number: "

set valuea 3
while {$valuea > 100} {
 set valuea [expr $valuea / 2 - 2]
 }

puts "final value is $valuea"

原文地址:https://www.cnblogs.com/greencolor/p/2169966.html