Practices
}とelseを同じ行に並べない。 if (cond) { # ... } else { # ... }
2つの文を1行にまとめない。
コードを段落に分ける。
4列のインデントレベルを使用する。
インデントにはタブではなくスペースを使用する。 .emacs(cperlモード) (defalias 'perl-mode 'cperl-mode) ;; cperlモードでのスペース4つのインデント '(cperl-close-paren-offset -4) '(cperl-continued-statement-offset 4) '(cperl-indent-level 4) '(c…
78列の行を使用する。 Emacs (setq fill-column 78) (setq auto-fill-mode t)
複数行にまたがるリストの各値のあとにコンマを配置する。 my @darves = ( 'Happy', 'Sleepy', );
全ての文の後ろにセミコロンを配置する。 while (my $line = <>) { chomp $line; if ( $line =~ s{\A (\s*) -- (.*)}{$1#$2}xms ) { push @comments, $2; } print $line; }
ホワイトスペースを使用して、2項演算子をオペランドから際立たせる。 my $displacement = $initial_velocity * $time + 0.5 * $acceleration * $time**2;
複合キーやインデックスを周囲のかっこから分離する。 $candidates[$i] = $incumbent{ $candidates[$i]{ get_region() } }:
組み込み関数や「名誉」組み込み関数のために、不要なかっこを使用しない。 while (my $record = <$results_file>) { chomp $record; my ($name, $votes) = split "\t", $record; print 'Votes for ', substr($name, 0, 10), #優先度を適用するには、かっこが…
サブルーチンまたは変数の名前を後続の開きかっこから分離しない my @candidates = get_candidates($marker); CANDIDATE: for my $i (0..$#candidates) { next CANDIDATE if open_region($i); $candidates[$i] = $incumbent{ $candidates[$i]{region} }; }
制御キーワードを後続の開きかっこから分離する 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; } }
かっこと中かっこにK&Rスタイルを使用する my @names = ( 'Damian', 'Matthew', 'COnway', ); for my $name (@names) { for my $word ( anagrams_of(lc $name) ) { print "$word\n"; } }