cxs7225032 发表于 2017-5-18 11:03:18

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

第六章:控制结构
零陆贰.
  使用代码块if,不要使用后缀if。

  例如,下面的就不好理解:
  $sum+= $measurement if defined $measurement;
  其实,它等于:
  if(defined $measurement) {
  $sum+= $measurement;
  }
零陆叁.
  后缀if要保留给流程控制语句。

零陆肆.
  不要使用unless、for、while、until作为后缀。

零陆伍.
  绝对不要使用unless或until。

零陆陆.
  避免C风格的for语句。

零陆柒.
  避免在循环内替数组或散列标示索引。

零陆捌.
  循环内绝不要标示索引超过一次。

零陆玖.
  使用具名词法变量作为for循环迭代器。

零柒零.
   总是以my声明for循环迭代器。

零柒壹.
  从旧列表产生新列表时要用map,不要用for。

零柒贰.
   寻找列表中的值时要用grep和first,不要用for。

零柒叁.
   转换列表时要用for,不要用map。

零柒肆.
   使用子程序调用把复杂列表转换分离出来。

零柒伍.
   绝不要在列表函数中修改$_。

零柒陆.
  避免级联的if。

零柒柒.
   级联的相等性测试时优先使用表格查找。

零柒捌.
   产生值时使用表格式的三元表达式。

零柒玖.
  不要使用do…while循环。

零捌零.
   尽可能多、尽可能早地拒绝循环迭代。

零捌壹.
   不要为了浓缩控制而扭曲循环结构。

零捌贰.
   使用for和redo,不要用不规则计数的while。

零捌叁.
  替每个会显式离开的循环贴上标签,
  然后对每个next、last、redo都使用该标签。
页: [1]
查看完整版本: Perl 最佳实践(节选) --- 06