Tcl

2005年12月17日(土) 15時40分 by level
B ?
Tags: その他

昨日、仕事上の必要に迫られて、50行くらいの Perl スクリプトを Tcl で書き直してみた。まともに Tcl のコーディングをするのは初めてだったので、細かい構文の違いにいらいらしながらもなんとか同じ動きをするものを作ることが出来た。ただし、正規表現のパターンを、別変数に定義したサブパターンの組み合わせで表現するとうまく行かず、結局全展開してしまった。まったくもって美しくない。Tcl はそういう使い方をサポートしていないのかと思って、自宅の Cygwin に Tclsh をインストールして試してみるとまったく無問題。たんなるチョンボだったのかも。来週もう一度試してみよう。

12/24更新

問題は解決したのだが、一応どういうことだったのか書いておこう。

Tcl で正規表現を書くときは、[regexp {\s+\w+\s+} ...] などと書くが、パターン中で変数を参照するには {...$var...} ではなく "...$var..." としなければならない。そうすると今度は、\s\w のバックスラッシュをエスケープしなければならなくなる。そこらへんをちゃんと理解していなかった(なんといっても、今回「はじめての Tcl」状態なんで)。自宅でうまくいったのは、非常に単純化した正規表現で実施していたからだ。

ただし、バックスラッシュをエスケープするのはただですら見づらい正規表現がますます見づらくなる。ということで、パターンを変数を含む部分とそうでない部分に分けて append pat {\s+\w+\s+} "$var" とやってみた。なかなかいい感じだ。

コメント

コメントはありません。

トラックバック

トラックバックは検索対象外です。

この記事にリンクしているページ < >

  1. データがありません。