Perlベストプラクティス
- 作者: Damian Conway,クイープ
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/08/24
- メディア: 大型本
- 購入: 11人 クリック: 153回
- この商品を含むブログ (155件) を見る
かっこはK&Rスタイル*1、BSDスタイルとGNUスタイルはだめ。
K&Rスタイル
my @names = ( 'uunfo', # myself 'hoge', # that one 'foo', # another one 'bar', # who ? ); for my $name (@name) { for my $word ( anagrams_of(lc $name) ) { print "$wod\n"; } }
BSDスタイル(開きかっこの前でも改行する)
my @names = ( 'uunfo', # myself 'hoge', # that one 'foo', # another one 'bar', # who ? ); for my $name (@name) { for my $word (anagrams_of(lc $name)) { print "$wod\n"; } }
かっことスペース
forやwhileのあとにスペースを入れる。
サブルーチンや変数名のあとにはスペースを入れないでかっこを書く。
組み込み関数(とそれに準ずるもの)の引数にはかっこを用いない。
for my $result (@results) { if ($result > 0) { $x = $result ; } } my @candidates = get_candidates($marker);
区別しやすくするため。
配列やハッシュのインデックス、キーの前後には適宜スペースを入れる。
$test[$i] = $input_values{ $index_of_value[$i]{ get_type() } };
キーとなる変数名が長い場合もスペースを入れると見やすくなる。
2項演算子の両側に結合の強弱に応じてスペースを挿入する。
単項演算子は離さない。(!のあとにはスペースを入れたいなあ)
セパレータをターミネータとして使う
セミコロンを文の末尾に。
コンマをリストの各項目の末尾に。
セミコロンは本来文のセパレータなのでブロックの最後の文には必要ないが、すべての文に付ける。
コンマも同様に、値の追加や順序の入れ替えに便利なように、すべての項目につける。
フォーマット
インデントはスペース4つで。((職場ではtabに統一(;-;)))
一行一文。
- elseの前に改行する。
} else {
ではなく
}
else {
と書く。慣れない…。
たてに整列。
長い文を改行するときは、(優先度の低い)演算子の前で。長い文が途中にある場合は独立させる
push @steeps, $step[-1] + $radial_velocity * $elapsed_time + $orbital_velocity * ($phase + $phase_shift) - $DRAG_COEFF * $altitude ;
3項演算子のレイアウト
my $salute = $name eq $EMPTY_STR ? 'Customer' : $name =~ m/\A((?:Sir|Dame) \s+ \S+) /xms ? $1 : $name =~ m/(.*), \s+ Ph[.]?D \z /xms ? "Dr $1" : $name ;