2003年6月1日(日) 天気 : くもり

4の倍数

必要があって、CGIスクリプトのカスタマイズをしていた。
もとよりプログラムの類は、知識がないのでわからない。これまでも、CGIスクリプトの中に記述されているHTML部分を書き直して、表示をカスタマイズする程度が関の山だった。
今回も基本的には表示を変更するのだが、どうやらスクリプト部分をさわらねばならないようだ。

CGI関係サイトのリファレンスなどを読んで、既存のスクリプトのどの部分を変更すべきか、何を追加すれば望むことができそうか、などはだんだん見えてきた。
大きなポイントは「ターゲットの数字が4の倍数である時に、次の処理を行え」というものだった。
試しにやってみたら、処理そのものはうまくいって、おおむね望む形になりそうだ。残る問題は、条件となる「4の倍数」にうまく合致しないこと。これをどう表現すればいいのか、だけになった。

わずかな数学的知識では、「n」を任意の整数として「4n」などと表記した記憶がある。そのままやったら、もちろんダメだった。
むろん、4または8または12または……てな感じでは間尺に合わない。
ネットで探したら「ある倍数の正規表現」というものがあった。見ただけでなんだかややこしそう。が、これも合わなかった。

さらにネットで、似たような場面でどんな記述がされているかを調べていて、やっと気がついた。「4で割って余りが0」なら4の倍数やんか。
余りを求める計算には「%」を使うらしい。すると「変数$xxを4で割った余りが0」という式は次のようになる。
「$xx % 4 = 0」
これを「if」の条件にあてはめたら、やっとうまくいった。

ようやく胸をなでおろしたが、これだけのために1日ハマッてしまった。
何をやっていたかといえば、CGIだと通常はほとんどタテ方向だけに並んでいるデータを、4列3行などの表形式にしようとしていたわけ。その改行のタイミングでの処理だったのだ。