瑞士军刀perl_Perl语言入门书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 程序 > Perl语言入门 > 瑞士军刀perl
拉格朗日 Perl语言入门 的书评 发表时间:2015-01-21 17:01:14

瑞士军刀perl

最初决定学perl 完全是因为有人说:要成为黑客最好应该学会c, java,python,perl ,lisp这五门语言,因为它们代表着一些截然不同的设计哲学;而我还没接触过perl。所以我拿起了小骆驼书(像我这样循规蹈矩是不是注定成为不了黑客了TT)

曾经认为Lisp是语言的瑞士军刀,现在我决定Perl才他妈的是!Lisp对于我来说更像是用来头脑风暴的。

Perl给我的印象:
1.模仿C和shell的痕迹很明显,这两门语言中的一些语法,函数在Perl中都能看到,比如printf,还有判断文件是否存在的函数竟然叫 -e

2.弱类型(weak-typed)很彻底。和python一样都不用声明变量的类型,但实用type(var)你就会发现python的变量实际还是有分类型的;而Perl则根据需要,比如字符串和数值可以相互转化:1+"3"得到4,甚至无法判断一个变量是不是整数,stackoverflow上有人说只能用正则表达式 /d+/ 去判断,也就是说同时它也可以是字符串。这可能和perl最初是被发明用来处理文本的原因有关。

3.there is more than one way to do it:如果if not... 不够爽,你可以用unless...;觉得while not ...不够直白?用until啊。懒惰是Perl程序员最大的美德,函数调用甚至不用带上参数,默认使用$_作为参数,比如print while(<STDIN>)其实是print $_ while ($_=<STDIN>)的意思。

4.context-sensitive:同一个变量在不同的上下文中的意思就不同,比如根据上下文是复数还是单数的,@array可能代表一个数组,也可能代表数组的长度。

这一定和Perl的发明人Larry Wall是语言学家这个事实密切相关。只要能把事情办了,爱怎么写就怎么写,elegance算个屁,形式追随功能才是最大的elegance!

Larry Wall说Perl是一门后现代语言,他认为Python滥用了空格,就像Java滥用了对象。某些语言想要由一个概念统一起来,而Perl则奉行实用至上。(我不禁联想到是不是应该给物理学家想要寻找万物理论(theory of everything)的爱好泼一盆冷水:谁说上帝用了一个优雅的公式就创造了宇宙?也许宇宙是他东拼西凑搞出来的:-)

在我接触过的语言中,Perl是最接近人类语言的:人类可以用多种方式表达一个意思,同一个词在不同上下文中的意思也可能不同。

展开全文
有用 0 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读