http://www.purl.org/tcl/home/man/tcl8.4/TclCmd/unset.htm
Note that you should use a catch with unset if there is a chance that a variable being unset hasn't been created yet.
Did you know that an unset can appear to fail? Erik Leunissen wrote about this on comp.lang.tcl during Oct, 2002: It is an error for the variables to not already exist, the name to be illegal, Well, I've been bitten by this one on a *regular* basis, but not on a *frequent* basis. So infrequently, that I tend to forget about the issue, and once it happens again, it takes me by surprise and I need hours to find the cause of evil, which I'll explain: A trace on the variable can resurrect it. The following happens when you bind a variable to an entry widget through the -textvariable option and subsequently issue [unset textvariable] : DKF: In 8.6, unset is bytecode compiled. (And don't use `catch
So what's the recipe then? In retrospect, unset should have been designed so that it was not an error to
- doing [ .entry -textvariable {} ], or - destroying the widget entirely
For the coming releases of Tcl (still in CVS), you can also set an unset trace on the textvariable, and let the trace handler do the above step one and/or two. For current releases this will not yet work because of a (recently fixed) bug.
Tcl syntax help - Arts and crafts of Tcl-Tk programming - Category Command