第二章:代码部署
零零壹.
以K&R风格表示大括号和小括号。
即:
my @name = (
‘damian’,
‘Matthew’
);
for my $name (@names) {
formy $word ( anagrams_of(lc $name) ) {
print“$wor\n”;
}
}
零零贰.
控制关键字和后继开口括号间要以空白分割
例如:
formy $result (@results) {
print_sep();
print$result;
}
while($min < $max) {
my$try = ($max - $min) / 2;
if($value[$try] < $target) {
$max= $try;
}
Else {
$min= $try;
}
}
零零叁.
不要把子程序或变量名称与后继开口括号分割开来。
即:
my@candiates = get_candIDates($marker);
CANDIDATE:
formy $i (0..$#candIDates) {
nextCANDIATE if open_region($i);
$candIDates[$i]
=$incumbent{ $candIDates[$i]{region} };
}
零零肆.
不要对内置函数和“名誉”内置函数使用不必要的小括号。
即:
while(my $record = <$results_file>) {
chomp$record;
my($name,$Votes) = split “\t”,$record;
print‘Votes for ’,
substr($name,10), # 为强加优先级所以需要小括号
“:$Votes (verifIEd)\n”;
}
零零伍.
把复杂的键或索引与周围的括号分开来。
例如:
$candIDates[$i]= $incumbent{ $candIDates[$i]{ get_region() } };
零零陆.
利用空白让二元运算符相对于其 *** 作数更醒目。
例如:
my $displacement
=$initial_veLocity * $time + 0.5 * $acceleration * $time**2;
零零柒.
每条语句之后都放分号。
例如:
while (my $line = <>) {
chomp$line;
if( $line =~ s{\A (\s*) – (.*)}{$1#$2}xms ) {
push@comments,$2;
}
Print$line;
}
零零捌.
多行列表中的每个值后面都放逗号。
例如:
my @DWarves = (
‘Happy’,
‘Sleepy’,
‘Sneezy’
);
零零玖.
使用78列的代码行。
因为印刷文件、旧式VGA显示设备、展示软件和应用光学没有解除这些限制,以大于80列的宽度作为代码的格式安排并不合理。
零壹零.
使用4列缩排层次。
零壹壹.
以空格缩排,不要以制表符(tab)缩排。
零壹贰.
绝不要把两条语句放在同一行。
零壹叁.
代码要分段落。
零壹肆.
不要紧贴着else。
“紧贴的”else看起来像这样:
} else {
正确的:
}
else{
零壹伍.
垂直对齐相对应的项目。
例如:
$name =standardize_name($name);
$age =time - $birth_date;
$status =‘active’;
零壹陆.
在运算符之前断开冗长表达式。
例如:
push @steps,$steps[-1]
+$radial_veLocity * $elapsed_time
+$orbital_veLocity * ($phase + $phase_shift)
-$DRAG_COEFF * $altitude
;
零壹柒.
把语句中间的冗长表达式分离出来。
例如:
my $next_step = $steps[-1]
+$radial_veLocity * $elapsed_time
+$orbital_veLocity * ($phase + $phase_shift)
-$DRAG_COEEF * $altitue
;
add_step ( \@steps,$next_step,$elapsed_time );
零壹捌.
一定要在最低可能优先级的运算符之处断开冗长表达式。
例如:
push @steps,$steps[-1]
+$radial_veLocity * $elapsed_time
+$orbital_veLocity
*($phase + $phase_shift)
-$DRAG_COEFF * $altitude
;
零壹玖.
在赋值运算符前断开冗长的赋值运算。
例如:
$predicted_val{$current_data_set}[$next_iteration]
=$average + $predicted_change * $fudge_factor;
零贰零.
以列安排级联三元运算符。
例如:
my $name = defined $customer{name} ?$customer{name}
: ‘Sir or Madam’
;
零贰壹.
冗长列表要加小括号。
例如:
print (
‘Processing’,
Scalar(@items),
‘items at ’,
time,
“\n”
);
零贰贰.
机械式地执行你所选择的部署风格。
Perl有可用的格式化工具:perltIDy。
网址:http://perltIDy.sourceforge.net
总结以上是内存溢出为你收集整理的Perl 最佳实践(节选) --- 02全部内容,希望文章能够帮你解决Perl 最佳实践(节选) --- 02所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)