不能不懂脚本

关于”perl可以省略括号“的牢骚

perl语言里面有一个通则,学perl的人都知道,那就是”只要不会因为移除括号而改变原意,括号就可加可不加。“

比如,chomp($line),也可以写成chomp $line。 比如push(@array,1..10)可以写成push @array,1..10。

这样的机制,我感觉没什么意思。看似好像给了用户很大的自由,但其实是为程序的阅读和编写增加了混乱。哎,不知道larry wall怎么就这么追求自由,自由得有些混乱。

有些自由的确是从用户的角度出发的,那样的自由才是好的。比如在shell中,我们将标准输出和标准错误输出一并重定向,我们使用>&和&>都是正确的。我觉得这就减轻的用户的记忆负担,是为用户着想。

总之,我感觉,有些自由是肤浅的自由,有些自由是体贴的自由。

我想要自由,但不想要混乱。

over~~

5条评论

  1. 这是为了和shell的习惯兼容,在perl中,这些又是函数,自然支持使用括号了。其实为所谓好坏,只要保持一致就可以了。有一本叫做书perl最佳实践,可以参考一下

  2. 感觉到,这就是perl吧。代码敲的越快越好,可读不可读倒是不重要。用perl的基本上都是while(){chomp;split //; …}这一串命令下来,执行完就扔掉吧。

    确实perl非常不严谨,超过50行基本上也没什么优雅的结构可言了。毕竟larry设计的原则就是practical不是beautiful。

    想优美请用python。

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *