perl的力量
有空初略堆perl入门了一下,发现perl确实非常强大。
什么是Perl
这个在百度百科里面有定义,但是我想我的理解是,perl就是一个C的脚本化的语言。语法思想基本是一样的,除了一些关键字,而这些关键字及其简单,应该说是C语言关键字的简化定义和分类。说perl来源于C,又胜于C,她的主要语言特点就是尽量减少代码量。就像写了javascript以后,再去熟悉各种prototype比如JQuery一样,忽然觉得用起来是如此的简单和强大。
跟java的虚拟机形式类似,perl也可以跨平台。所有perl命令都是通过一个入口执行,与操作系统隔离,但距离有不远,随时可以越过这个入口深入系统内部,所以她很强大。
为什么用perl
我想perl不是所有场合都适合用的,因为perl毕竟是脚本语言,所以她最适合服务器端的大量琐碎的事物,肯定比写一些shell脚本容易强大的多。
如果要写一些大型的应用服务,比如web服务等,虽然可以写,但是由于她的灵活性,难以在开发成员多的情况下统一风格,维护升级。所以还是用java这些面向对象的语言让开发者有更多时间关注程序以外的东西,而且风格较为统一,容易维护升级。
如果要写一些驱动或者系统级别的服务,比如ftp服务器等。虽然可以写,但是由于她是脚本语言,还是用C语言来的快速直接。
perl就像旅行时的一把瑞士军刀,别的语言不会的,她会,别的语言会的,她更会。在我们想偷懒的时候能帮一把大忙。
如何用perl
perl脚本语法众多,不过我想关键的语法如下:
$value 代表变量
@array 代表数组()
%Hash 代表HashMap{}
&function 代表函数
此四个符号是perl的核心关键字,这些关键字的组合可以代表很多意思,因此有人把他们叫做funny charactor
另外还得提到那些跟C语言一样的符号,
比如*value,*号代表取地址,不过也可以用上述的四个符号代替实现,那就是在前面加上转义符\,比如\$value,\@array,\%Hash
比如->,是*的反过程,即解地址,比如->[0]访问数组元素,->{"key1"}访问Hash元素,->(value1,value2)访问函数(调用函数)。
除了这些还有作用域,有三种,out,my,local
根据字面就很容易理解,perl不像其他语言,perl作用域是要自己去显式的申明的,要不然解释器也不知道你到底是那个作用域的,因为毕竟是脚本语言解释型的。
还有,加上一些固定约定和强大的函数库。
比如数学函数,字符串操作函数我就不说了,大家都有,perl当然要有。
比如数组相关的函数,perl对数组操作那是极大的功能增强,常见的sort,reverse函数。
最后重点提一下进程相关函数,perl真不简单,她能提供进程的创建,运行,休眠,等待,销毁的完整生命周期的管理,还有对多线程的支持也是相当的到位。
最后,提一下关于perl对面向对象的支持,提供了package,require,this变量等类似java等面向对象语言的一些功能。虽然跟那些还稍微逊色一点,但是这正体现了perl的强大。
好了,这些都是我对perl的入门感想,如果有时间的话我一定会深入应用一下perl。
To Be Continue...
在这里我要补充感慨一下,为什么那些语言啊,新技术啊,新的idea大部分都born in America呢?其实我要谈论到一个关于什么是创新的问题上。
什么是创新,难道非要前无古人后无来者?肯定不是,一个思维方式的转变,一个知识的整合都可以是创新,而那些完全从无到有的创新,我想历史上也没有几件。国外为什么会不断出现各种新技术?如果问多问一个为什么就明白了。
任何的新技术的出现都是为了解决一个问题而出现的。而这个新技术都是基于某种前人的技术的思维方式的转变或者各种知识的整合而出现的。
就那perl来说,它不可能凭空想象出来的,如果翻开perl的历史,我们就知道,他的出现是作者在做系统维护的工程中为了解决一个问题而发起的。而当时现有的技术对于他的问题不能很好的解决,所以作者在当时最流行的C语言的基础上加入和awk等脚本语言的动态特性而发明了这个一个perl语言。当然正是这个perl的独特创新使他饱含生命力。