Это больше связано с выводом, чем с Tcl join
. Ваш вывод (например, консоль / оболочка) может не отображать возврат каретки.
Например, если вы сделаете:
set myList {{a} {b} {c} {d} {e} {f} {g}}
set result [join $myList \r]
puts [string length $result]
В качестве вывода вы получите 13, показывая, что строка верна.
Если вы можете изменить расположение вывода, например, на текстовый файл, а затем открыть файл в редакторе, который может распознавать возврат каретки как символ, обозначающий изменение в строке (я использовал Notepad ++ для тестирования), вы увидите, что вывод в порядке.