Posted to tcl by evilotto at Tue Mar 27 21:52:50 GMT 2012view pretty

proc getuniq {varname {initializer ""} {prefix ""}} {
    upvar 1 $varname uniq
    set uniq ::uniques::${prefix}_unique[incr ::uniques::ucount]
    uplevel 1 [list trace add variable $varname {write unset} [list unset $uniq]]
    set $uniq $initializer
    return $uniq
}