This issue of dereferencing seems to come up frequently enough to deserve a page of tips, suggestions, warnings, etc.
The basic situation is that a user is trying, either intentionally or accidentally, to do pointer like design.
So they end up discovering they need to do something like:
set a "123" set b "3.1415" set c "The price of petrol in Peroria" foreach var {a b c} { puts [set $var] }