そのため、私はTCLプログラミングの方法に非常に慣れておらず、経験がありません。最初に出力ファイルを削除して、他の誰かが作成したプロシージャを呼び出すスクリプトを作成しました。次に、私が書いた追加のロジックを実行します。
ロジックを 2 番目の proc に移動すると、すぐにそのロジックの一部 (つまり rm コマンド) が壊れました。
私が知る限り、中央実行内の行の最初のプログラム (proc 定義に続くテキスト) は、「exec」コマンドなしで正常に実行されます。ただし、proc 内に移動する場合は、「exec」コマンドが必要になります。
TCLがこのように動作する理由を誰かに説明できますか?
例えば
proc helloworld {} {
puts "hi"
}
#works
rm my_file
helloworld
..
proc helloworld {} {
#doesn't work
rm my_file
puts "hi"
}
helloworld
..
proc helloworld {} {
#works
eval rm my_file
puts "hi"
}
helloworld
..
proc helloworld {} {
#works
file delete my_file
puts "hi"
}
helloworld
*この奇妙な動作は、スクリプトを vmd にフィードしているプログラムに固有のものである可能性があることに注意してください。これには、独自の TCL 動作が組み込まれています。おそらく、あなたの回答で、これが他の通訳者にとっても標準であるかどうかを示すことができますか?