# コメント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]] |
これが抜本対策になるかどうかは今のところ?です。。。