小計
このごろ、Perlで書くCGIスクリプトが面白くて、すっかりハマッている。今日も、ウンウンうなってひとつ作った。 誰かに教えてもらえばもっと早いだろうに、と思うようなことも本を頼りにやっているので時間がかかる。だから、あーでもない、こーでもないとさんざん試して悩んで考えて、やっとのことで思うようにできた時の達成感がたまらないわけだ。
ただ、自分のレベルが低いせいだから仕方がないが、この達成感もあまり他人に大きな声で言うほどのものではない。たとえば今日「達成」できたのは「小計」なのだ。そう、表計算の小計。 「今日は小計ができたんや」 「へえ、すげーやん!」 なんて、普通の人ならきっと誰も言わない。
ここで言う小計とは、たとえば都道府県ごとに複数の数値が並んでいるような表だ。京都の数値が何行かあって京都の小計がある、続いて大阪の数値が何行かあって大阪の小計がある、さらにほかの県の数値と小計が並んで最後に合計、というようなタイプ。もちろん、都道府県がランダムに並んでいるデータを読み込んで自動処理させるわけ。
実はCGIスクリプトがWebページに書き出す表は、1行ずつ処理を繰り返しながら順に書き出していくものが多いようだ。合計は、前の行までの合計に今の行の合計を足していく、というような処理を繰り返して、最後の数値が総合計になるという具合だ。 そのせいなのか、よく見るのは単純な一覧表(小計なし)、あるいはそこから、上記の例で言えば京都など特定の県だけ抜き出して一覧にするというタイプで、この合計が全体の小計に該当する。ここまでは割と簡単で、僕も比較的早くできた。
ところが一覧表に小計を加えたい、いやさらに小計だけの表を作りたいと思ったところ、この繰り返すという処理のために、何度やっても小計にならずに、どんどん足し続けていくわけ。ずいぶん考えた末に、小計にかかわる繰り返しの一定のタイミングで合計値を「0」に戻してやればいい、と気づいてうまく小計になった時には、思わず手を打った次第だ。 しかしほら、なんだそんなことか、と思うでしょ、いろんな意味でやっぱり……。
|