またまたcgiプログラムネタ‥‥。
今度はうちの情報掲示板に検索エンジンを載っけました。
実は一ヶ月くらい前にプロトタイプを作って置いてたんですが、その時のバージョンではファイル単位に検索をかけるだけだったから、検索したいキーワードが「どのページにあるか」はわかっても「どの部分にあるか」はあらためてブラウザのfind機能を使うなり地道に探すなりしなければいけない仕様だった(これだとプログラムのキモは正規表現1発で片づくのでとっても簡単に書ける)ことで、いまいち公開する気になれなかったんですね。
で、今回ようやく「どの部分にあるか」までわかる仕様に書き換えたので公開することにしました。
プログラム自体は、前バージョンの「ファイル全体対して一度検索をかける」から「行ごとに検索をかける」に変えただけでそれほど変わったわけではないのですが(でも処理速度はがっくり落ちた‥‥)、問題は発見場所をすぐ参照できるようにするためのラベル(<a name>タグ)をこれまでの書き込みファイルに埋め込まなきゃならないのが面倒でこれまでほったらかしにしてたわけなんです。
結局この処理もperlにやってもらうことにしたんですが、この手のスクリプト処理をするときのperlの使い勝手の良さは感動ものです。
昔、sedを使ってた時にawkの存在を知ってひとしきり感動したのも束の間、その後現れたperlに感動したのは8年くらい前(かなぁ‥‥?)だと思うんですが、最近ではめっきりなりをひそめたsedやawkに比べてperlは相変わらず元気で、ここらへんからもperlの優秀性がわかるってもんです。(「んーなもん用途がそれぞれ違うやんか」とお怒りのsed・awkファンの人いたらゴメンなさい)
げ、またテレホーダイタイム過ぎた‥‥。