Posted to tcl by stevel at Fri Sep 04 03:56:38 GMT 2009view pretty
proc ReadCmd {v1 v2 op} { upvar 1 $v1 v if {![info exists v($v2)]} { after 5000 set ::$v2 1 vwait ::$v2 set v($v2) $v2 } } proc WriteCmd {v1 v2 op} { upvar 1 $v1 v puts "${v1}($v2) set to $v($v2)" } array set foo {} trace add variable foo read ReadCmd trace add variable foo write WriteCmd puts "initial values = [array get foo]" after 2000 set foo(new) 10 puts "foo(bar) = $foo(bar)" puts "foo(bing) = $foo(bing)" puts "final values = [array get foo]"