Tcl adds curly braces when using `$` sign
set B {pc_0::!mx_0 pi::$mx_0} puts $B set A "" foreach x $B { lappend A $x } puts $A The output of this program is pc_0::!mx_0 pi::$mx_0 pc_0::!mx_0 {pi::$mx_0} It is strange that tcl adds curly braces in second output. I guess it is because it uses $ symbol. But I really need to use it and I don't want the braces to be inserted. How this can be explained and how to avoid the braces? As a general rule, don't treat lists as strings . Pretend that they don't have a string representation. (The string representation is only useful for serialization, debugging, but not for the user). To convert