Perl 编程格式指南

时间:2007-05-25 02:28:26  来源:站长资讯收集整理  作者:佚名

    print 1, 2, 3;                          # 好的
    delete $hash{key} if isAnon($uid);      # 好的
不管怎样,如果有什么疑惑的情况,最好加上圆括弧,记住perl样式man文档中Larry Wall的一句话: 当你有疑惑的时候,加上圆括号,至少,它可以让一些可怜的笨家伙在vi中能用%跳舞。(在vi中%用来寻找匹配的括号) 尽管你不处于疑惑之中,将来使用你的代码的人,就算是为他们的大脑神经做做公益事业,你还是加上圆括号吧,省得将来他们自己加括号也许会加错地方。 所以,当程序员非常清楚的情况下,省略圆括号,但是如果有任何问题的话,就不要省略它们。

花括号

(这是关于流程控制中的花括号,不是哈希等数据结构中的花括号。) 在前花括号之前一定有一个空格

    while (<$fh>){      # 错
    while (<$fh>) {     # 对
一行的代码块可以写在一行中。那代码后面的分号可以省略。
    for (@list) { print }
否则,在每一行代码结束的地方添加分号,在第一行写关键字和前花括号,后花括号和后面的关键字写在一行。
    for (@list) {
        print;
        smell();
    }
perl样式中常用“单臂elses”:(译者注:就是else旁边只有一个单花括号。)

    # 对
    if ($foo) {
        print;
    }
    else {
        die;
    }


    # 错
    if ($foo) {
        print;
    } else {
        die;
    }

操作符

多数操作符两边可以添加空格。主要的例外是从美学角度出发的;例如,“**”符号两边的空格是省略的。另外,在“,”的前面没有空格,而在后面往往有一个空格。
   print $x , $y;   # 错
    print $x, $y;   # 对

    $x = 2 >> 1;    # 好
    $y = 2**2;      # 好
注意“&&”和“||”的优先级高于“and”和“or”。除此之外完全相同。建议使用低优先级的来控制流程,高优先级的用来测试/返回值。例如:
    $bool = $flag1 or $flag2;       # 错误!无法运行
    $value = $foo || $bar;          #  正确
    open(FILE, $file) or die $!;

    $true  = foo($bar) && baz($buz);
    foo($bar) and baz($buz);
注意上面“and”很少使用and,因为上面的语句比用“if”写要好一些。
    baz($buz) if foo($bar);
大多数情况下,and和&&,or和||之间的混淆可以通过使用圆括号很好地解决。如果你不使用圆括号,那么你必须正确使用操作符。但如果你使用了圆括号--通常,如果有问题的话,应该使用--那么不管你用什么操作符都关系不大。从易读角度来看也好,从美学角度来看也好,一定要在你的代码块中保持风格一致。 在很长的代码行中在操作符之后断行,但“and”,“or”,“&&”,“||”例外。对于二元的操作符来讲,符号两边的数据要尽量保持整齐。
    print "foo" . "bar" . "baz"
        . "buz";                    # 错

    print "foo" . "bar" . "baz" .
        "buz";                      # 对

    print $foo unless $x == 3 && $y ==
        4 && $z == 5;               # 错

    print $foo unless $x == 3 && $y == 4
        && $z == 5;                 # 对

		  
        
上一篇:Perl基础指南

文章评论

共有 位CH网友发表了评论 查看完整内容