Perl 最佳实践(节选) --- 02

Perl 最佳实践(节选) --- 02,第1张

概述  第二章:代码部署     零零壹. 以K&R风格表示大括号和小括号。   即: my @name = (        ‘Damian’,        ‘Matthew’ );   for my $name (@names) {        formy $word ( anagrams_of(lc $name) ) {               print“$wor\n”;       

 

第二章:代码部署

 

 

零零壹.

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1284861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存