Practices

2.14 Else

}とelseを同じ行に並べない。 if (cond) { # ... } else { # ... }

2.12 ブロック

2つの文を1行にまとめない。

2.13 チャンク化

コードを段落に分ける。

2.10 インデント

4列のインデントレベルを使用する。

2.11 タブ

インデントにはタブではなくスペースを使用する。 .emacs(cperlモード) (defalias 'perl-mode 'cperl-mode) ;; cperlモードでのスペース4つのインデント '(cperl-close-paren-offset -4) '(cperl-continued-statement-offset 4) '(cperl-indent-level 4) '(c…

2.9 行の長さ

78列の行を使用する。 Emacs (setq fill-column 78) (setq auto-fill-mode t)

2.8 コンマ

複数行にまたがるリストの各値のあとにコンマを配置する。 my @darves = ( 'Happy', 'Sleepy', );

2.7 セミコロン

全ての文の後ろにセミコロンを配置する。 while (my $line = <>) { chomp $line; if ( $line =~ s{\A (\s*) -- (.*)}{$1#$2}xms ) { push @comments, $2; } print $line; }

2.6 演算子

ホワイトスペースを使用して、2項演算子をオペランドから際立たせる。 my $displacement = $initial_velocity * $time + 0.5 * $acceleration * $time**2;

2.5 キーとインデックス

複合キーやインデックスを周囲のかっこから分離する。 $candidates[$i] = $incumbent{ $candidates[$i]{ get_region() } }:

2.4 組み込み関数

組み込み関数や「名誉」組み込み関数のために、不要なかっこを使用しない。 while (my $record = <$results_file>) { chomp $record; my ($name, $votes) = split "\t", $record; print 'Votes for ', substr($name, 0, 10), #優先度を適用するには、かっこが…

2.3 サブルーチンと変数

サブルーチンまたは変数の名前を後続の開きかっこから分離しない my @candidates = get_candidates($marker); CANDIDATE: for my $i (0..$#candidates) { next CANDIDATE if open_region($i); $candidates[$i] = $incumbent{ $candidates[$i]{region} }; }

2.2 キーワード

制御キーワードを後続の開きかっこから分離する for my $resut (@results) { print_sep(); print $result; } while ($min < $max) { my $try = ($max - $min) / 2; if ($value[$try] < $target) { $max = $try; } else { $min = $try; } }

2.1 かっこ

かっこと中かっこにK&Rスタイルを使用する my @names = ( 'Damian', 'Matthew', 'COnway', ); for my $name (@names) { for my $word ( anagrams_of(lc $name) ) { print "$word\n"; } }