Perl事始め その3(1998.1.14)

Perl事始め その3(1998.1.14)



 たいていのデータベースソフトには、名前の読み順にソートしたうえ住所録をラベル印刷できるようにフォーマットしてフォントを変えたり、装飾を入れつつ印刷する機能が付いている。せいぜいラベル印刷するのは、Booby Trapの直接購読者や寄贈者に送るときである。すると、データベースソフトのやり方を再現するのにまた試行錯誤を重ねることになる。それにあらかじめ切れるようになったシールに印刷するのは、まずシールを買いに行かなければならないし、僕のもっているレーザプリンタに出力してカッターで切れば十分である。Perlはすごい機能をもっているから、テキストファイルをラベルにフォーマットするなど朝飯前なのだが、たいていの素人プログラマを目指す人は住所録を元にPerlの練習をするのではないだろうか。「ラマ本」によるとPerlの語源に関して「Practical Extraction and Report Language」(実用的なデータ取得レポート作成言語)の略称であるという説が有力だと書いてある。じつはそのときどきに適当に「説」を作ればいいのだが、とりあえずBooby Trapを送付する住所ラベルを作るスクリプトを書いてみた。これはとても素っ気ないラベルだが、フォーマットの意味を知る練習になるわけである。以下がそのスクリプトで、勉強の進んだ方には簡略化できるコードもあると思う。

format ADDRESSLABEL =
=======================================
|@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|
$nzip
|^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|~~
$add
|@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|
$nname
|@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>|
$nyoyaku
=======================================
.

open(ADDRESSLABEL,">btlabel.txt")||die "can't create";
open(ADDRESSES,"bt.dat")||die "cannot open addresses";
@addr=<ADDRESSES>;
while($addr=shift(@addr)){
chop($addr);
($yomi,$name,$zip,$add,$yoyaku)=split(/:/,$addr);
$nzip="〒$zip";
$nname="$name様";
$nyoyaku="予約号:$yoyaku";
write ADDRESSLABEL;
}

 これを装飾的にするにはDTPソフトに流し込んで手を加えればいいわけである。
 PCユニックスがさらに流行ると思う。なにより、自分でサーバを作る楽しみがおもしろそうで、Perlは威力を発揮するだろうし、C/C++はその発祥の地で生き生きとしてくるだろう。そちらにも遠いけど、好奇心が湧いているところである。

|
清水鱗造 連続コラム 目次| 前頁(Perl事始め その4(1998.1.21))| 次頁(ミニ6穴の手帳 その1(1998.1.7))|
ホームページへ