>>27

>set abc {ABC}
>pack [button .hoge -text hoge -command {puts $abc}]
>set abc {AAA}
>
>だとボタン押したときに実行されるのが
>ABC
>の方なんだよね

そんなはずないと思う

-commandの {puts $abc} はglobalなコンテキストで評価されるから、
abcがglobalならputs $abcはAAAになる

そうじゃなくて -command "puts $abc" であれば、
buttonコマンド実行時に$abcが置換されるからABCになる

慣れないうちは混乱する
こんなところが嫌われる