Perl はリストの最後の要素にカンマがあっても無くても良い。
@favorites = (‘coffee’, ‘ichigo-milk(sakuma)’, ‘Natsume Soseki’);
#以下のように書いても同じ意味。エラーも出ない。
@favorites = (‘coffee’, ‘ichigo-milk(sakuma)’, ‘Natsume Soseki’,);
これだけ見ると、「ふーん、それで?」と思うかもしれないが、以下のように書けば、どの要素を削除しようが入れ替えようが、行単位で移動したり、追加変更したりすればよいので、とても楽だ。
特に diff と patch を使うようになると、これは結構生産性にかかわってくる。
@favorites = (
‘coffee’,
‘ichigo-milk(sakuma)’,
‘Natsume Soseki’,
);
‘coffee’,
‘ichigo-milk(sakuma)’,
‘Natsume Soseki’,
);
#追加する場合
@favorites = (
‘coffee’,
‘ichigo-milk(sakuma)’,
‘Natsume Soseki’,
‘Eduardo Trassierra’, #追加する行だけ変更
);
#削除する場合
@favorites = (
‘coffee’,
‘ichigo-milk(sakuma)’,
);
ところが、私が使う Perl 以外の言語( 主に JavaScript と SQL ) はどちらも最後の要素の後にカンマがあるとエラーになる。
(JavaScript は、ブラウザによってはエラーにならないものもあるが。)
プログラムを修正するたびにぶーぶー文句言われるのは気分が悪いので、回避策を考えた。
カンマは先に打て。
例えば SQL なら、
create table mytable (
id int(8) NOT NULL auto_increment
, typecode tinyint(4) NOT NULL
, name text NOT NULL
, reg_date timestamp NOT NULL default CURRENT_TIMESTAMP
)
;
id int(8) NOT NULL auto_increment
, typecode tinyint(4) NOT NULL
, name text NOT NULL
, reg_date timestamp NOT NULL default CURRENT_TIMESTAMP
)
;
のように2番目以降の要素を記述する行の冒頭にカンマを打っておけば、表示幅も揃って、抜け落ちればすぐ目に着く。
そして、開発中に追加削除の変更が入るのは後半の要素が多く初めの2-3 要素は変更がないので、後でカンマの有無だけ変わる行はほぼなくなる。
どうでしょう?