C言語で次のように書くプログラムがあったとする。
int main(void) {
int i;
for (i = 1; i <= 10; i++) { printf("%d", i); } return 0; }
int i;
for (i = 1; i <= 10; i++) { printf("%d", i); } return 0; }
1から10までの数字を表示するためのもの凄く簡単なプログラム。
これを見て、ある人は { } のムダに気付いたかもしれない。あるいはC++やC99では変数の宣言をこう書くだろう。
int main(void) {
for (int i = 1; i <= 10; i++) printf("%d", i); return 0; }
for (int i = 1; i <= 10; i++) printf("%d", i); return 0; }
このようにしてプログラムを綺麗で簡潔な形に書き直すことは気持ちが良い。
(上記の書き直しが綺麗かどうかは別の議論として)
ところでPerlという言語は、このような書き直しの方法がたくさん用意されている。
例えば上のプログラムの例だと、そのまま移植すれば次のようになる。
for (my $i = 1; $i <= 10; $i++) { print "$i"; }
Perlの場合、これを更に書き換えて、次のように書ける。
foreach my $i (1 .. 10) { print "$i"; }
ここで終わりではない。
更に省略しようと思えば、次のようにまで省略できる。
print for (1 .. 10);
今回例に挙げたようなもの凄く単純なプログラムでも、どんどん書き換えや省略ができてしまうのがPerlの楽しさであり、その方法が思いついたときのささやかな喜びが、僕にPerlを好きにさせているんだと思う。
(とはいえ、PerlにはXSという難解な言語仕様が待っているんだけど)