# コメント1 # コメント2 # コメント3 # コメント1 \ コメント2 \ コメント3  | 
行の途中からコメントとする場合は、セミコロン(';')を使って'マルチステートメントにします。
set var 123 # これはダメ set var 123; # これはOK!  | 
# foo コマンド
proc foo {} {
    # コマンド定義
    puts "こんにちは"
}
 | 
コメント中の'マ'の字はSJISコードの2バイト目が中括弧の閉じ('}')になっています。
Tclは中括弧の開きと閉じの関係が合わないと文法エラーになることがあります。
このコードはWindows日本語版では問題なく動作しますが、Windows英語版では3行目でエラーになります。
1行目でもエラーになりそうですが、ブロックの外なのでエラーになりません。
以下のコードのコメントは英語ですが、
ダブルクォート中に'マ'の文字があり、同じ問題が潜んでいます。
proc foo {} {
    # comment
    puts "コマンド"
}
 | 
この手の問題は、非常に発見しにくい厄介な問題なのです。
WebでLintのようなコードチェッカを探してみましたが、これというものは見つかりませんでした。
簡単なものなら自作できますし。。。
!#/usr/bin/tclsh -encoding utf-8
#!/bin/sh
# I wish to use tclsh \
exec tclsh -encoding utf-8 "$0" "$@"
package ifneeded pkg 1.02 [list source -encoding utf-8 \
      [file join $dir pkg.tcl]]
 | 
これが抜本対策になるかどうかは今のところ?です。。。