(Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用普遍,从大型机到便携设备,从快速原型建立到大规模可扩展开发。)前端
优势
Perl追求的是简单, 解决一个通常的问题用它几行代码就完成了. 一个稍复杂一点的问题代码也不会超过一屏! 在软件测试中,Perl一般是很是重要的角色。通常一个测试通用函数库就要分十几个文件,甚至更多,包含多达上千个定制功能。而这些函数将在主函数运行时,不定数量的被调用。几乎能够说,一切自动过程都是由Perl本身完成的,可见其功能的强大和在当今计算机技术高速发展的时期仍然发挥着重要的做用。
Perl 最初是当作一种 Unix 的脚本语言设计的,可是它早就移植到大多数其它操做系统里了。由于 Perl 几乎能够在任何地方运行,因此 Perl 能够说是当今最具备移植性的编程环境;要想写可移植的 C/C++ 程序,你得在程序里加上一大堆 #ifdef 标签来区分不一样的系统;要想写可移植的 Java 程序,你必须理解每种新的 Java 实现的特质;要想写可移植的shell,你可能要记住每条命令在每种操做系统上的语法,走运的时候你可能能够找到一些公共的东西;要想写可移植的 Visual Basic 程序,须要对“移植”有个更灵活的定义。
让咱们很高兴的是 Perl 避免了全部这些问题,同时还保留了这些语言中的许多优势,同时还有一些本身的特点。Perl 的特点来自许多方面:它的特性集的工具,Perl 社区的创造性,以及开源运动的大环境。不过,许多这些特性都是混合的东西;Perl 的身世复杂,它老是把事物当作是优势的不一样方面,而不是弱点。Perl 是“背黑锅我来”的语言。若是你以为本身陷入一团乱麻之中,很是渴望自由,那么请使用 Perl。
Perl 是跨文化的。Perl 的爆炸性增加很大程度上是由于那些前 Unix 系统程序员的渴望,他们但愿从他们的“老家”带着尽量多的东西。对于他们而言,Perl 是可移植的 Unix 文化蒸馏器,是"此路不通"的沙漠中的绿洲。从另一个角度来看,Perl 还能够从另一个方向运转:在 Windows 上工做的 web 设计者一般会很是开心地发现他们的 Perl 程序能够不加修改地在 Unix 服务器上跑。
尽管 Perl 在系统程序员和 web 设计师中间很是流行,但这只是由于是他们最先发现 Perl 的,Perl 能够用于更普遍的用途。从 Perl 最先的文本处理语言开始,它已经发展成为一种很是复杂的,通用的编程语言,以及完整的开发环境,包括调试器,调节器,交叉引用,编译器,库,语法提示编辑器,以及全部其它“真正”的编程语言所具备的全部挂勾,只要你须要。固然这些东西都是让咱们可能处理难的问题的东西,并且不少其它语言也能够作到这一点。Perl 之因此成为 Perl 是由于它历来不会由于保持简单事情简单化而丢失其余方面的特性。
由于 Perl 既强大又好用,因此它被普遍地用于平常生活的方方面面,从宇航工程到分子生物学,从数学到语言学,从图形处理到文档处理,从数据库操做到网络管理。不少人用 Perl 进行快速处理那些很难分析或转换的大批量数据,无论你是处理 DNA 序列,网页,仍是猪肚皮的将来都无所谓。实际上,在 Perl 社区有一个笑话就是,下次股市大崩盘就颇有多是哪一个家伙写的脚本里头有bug形成的。(不过,乐观点来看就是,任何还在失业的股票分析师仍然有能够利用的技巧。)
Perl 的成功有许多缘由。Perl 早在开源软件的名字出现以前就已是一个成功的开源项目了。Perl 是自由的,并将永远自由下去。你能够在任何合适的场合使用 Perl,只须要遵照一个很是自由的版权就能够了。若是你在从事商业活动而且还想使用 Perl,那么用就是了。你能够把 Perl 嵌入到你写的商业软件中而不须要支付任何费用也没有任何限制。若是你碰上一个 Perl 社区解决不了的问题,那你也还有最后的一招:源程序自己。 Perl 社区不会在“升级”的假装下租给你它们的商业秘密。并且 Perl 社区也不会“停业 ”,更不会让你孤立无援。
Perl 是自由软件这一点无疑对它是有帮助的。但这一条并不足以解释 Perl 现象,由于许多自由软件包没有能繁荣起来。Perl 不只自由;并且好玩。人们以为本身在 Perl 里能够有创造力,由于它们有表达的自由:他们能够选择是为计算机速度优化仍是为程序员的速度优化,是冗长仍是简洁,是选择可读性仍是可维护性,或者选择复用性,移植性,接受性和传授性等等。假如你进入一次模糊的 Perl 比赛,甚至你还能够为模糊性作优化。
Perl 能够给予你全部这些自由,由于它是一门有着分裂人格的语言。Perl 同时是很简单而且很富有的语言。Perl 从其它地方拿来好主意,而后把它们安装到易用的框架里面。对于只是喜欢她的人来讲,Perl 是实用抽取和报表语言(Practical Extractoin and Report Language)。对那些热爱她的人而言,她是变态电子垃圾制造者(Pathologically Electric Rubbish Lister)。在少数人眼里,Perl 是毫无心义的重复练习。不过世界须要一点点冗余。精简主义者老是想把事物分隔开。而咱们则老是企图把它们合并到一块儿。
Perl 之因此是简单的语言是有不少缘由的。好比你用不着知道什么特殊的指令就能够编译 Perl 程序--只要把它当作批处理或者 shell 脚本执行就能够了。Perl 的类型和结构很容易使用和理解。Perl 对你的数据没有任何限制--你的字串和数组能够要多长就多长(只要你有足够的内存),并且它们都会自动增加。Perl 不会强迫你学习新的语法和语意,Perl 改从许多其它你已经熟悉的语言里(好比 C, awk, BASIC 和 Python, 英文,希腊语等)借来语法。实际上,任何程序员均可以从书写良好的 Perl 代码段中读懂它的含义。
最重要的是,你不用先学习全部 Perl 的东西就能够开始写有用的程序。你能够写很小的 Perl 程序。你也能够象小孩那样写 Perl 程序,咱们保证不会笑话你。或者更准确地说是,咱们毫不会笑话小孩作事情的创造性。Perl 里的许多观点都是从天然语言中借来的,其中一条最好的观点就是只要你能把本身的意思表述清楚,那么你就可使用这些语言的一个子集。Perl 文化能够接受任何熟练程度的成员。咱们不会在你背后放个语言警察。若是你的老板不炒你,并且你的 Perl 脚本也能完成工做,那么它就是“正确”的。
尽管 Perl 很简单,但它仍然是一种特性很丰富的语言,若是你想用那些特性的话,那你就要学习一些东西。这也是把难题变简单的学费。虽然你要想把全部 Perl 能作的事情吸取还须要一些时间,但到你须要这些功能的时候你就会很是开心地发现 Perl 已经能够作这些事情了。
因为 Perl 的继承性,就算它只是用作数据概括语言的时候也有丰富的特性,Perl 一开始就设计成能够浏览文件,扫描大量文本而且生成动态数据以及打印出这些数据的良好格式化的报表。不过,随后 Perl 就开始风行,因而它就成了能够操做文件系统,进程管理,数据库管理,进行 C/S 编程和安全编程,web 信息管理,甚至能够进行面向对象和面向功能的编程的语言。并且这些功能并不是只是在 Perl 这边,每种新功能都和其它东西交流得很好,别忘了 Perl 从一开始就是设计成胶水语言的。
并且 Perl 并不只仅只能黏合它本身的特性。Perl 是设计成能够用模块扩展的语言。你能够用 Perl 快速设计,编写,调试和部署 Perl 应用,而且你还能够在须要的时候很方便地扩展这些应用。你能够在其它语言里嵌入 Perl,并且你也能够在 Perl 里嵌入其它语言。经过模块输入机制,你能够把这些外部的扩展当作内置于 Perl 的特性。那些面向对象的外部库在 Perl 内部仍然保持面向对象的特征。
Perl 还在许多其它方面协助你。和严格的每次执行一条命令的命令文件和 shell 脚本不一样的是,Perl 先把你的程序快速编译成一种内部格式。和其它任何编译器同样,这个时候还进行各类优化,同时把碰到的任何问题反馈给你。一旦 Perl 的编译器前端对你的程序表示满意了,它就把这些中间代码交给解释器执行(或者是给其它的能生成 C 或者字节码的模块后端)。听起来挺复杂,不过 Perl 的编译器和解释器干这些活效率至关高,咱们的编译-运行-修改的过程几乎都是以秒计。再加上 Perl 的许多其余开发特性,这种快速的角色转换很适合作快速原型设计。而后随着你的程序的成熟,你能够逐步拧紧身上的螺母,减小散漫加强纪律。若是你作得好,Perl 也能帮你这个忙。
Perl 还能够帮你写更安全的程序。除了其它语言提供的典型的安全接口以外,Perl 还经过一种跟踪数据的机制给你提供预防意外安全错误的保护,这样就能够在灾害发生以前预防其发生。最后,Perl 还可让你设置一个特殊的防御隔段运行那些来源不明的 Perl 代码,以此来杜绝危险操做。
不过,偏执一点儿说,Perl 帮你的大部份内容和 Perl 自己没有什么关系,而是和使用 Perl 的人有关。坦率地说,Perl 社区的人们能够说是地球上最热心的人了。若是 Perl 运动里面有那么一点点宗教色彩的话,那么这就是它的核心了。Larry 但愿 Perl 社区像一小片天堂那样运转,目前看来他的愿望基本上是实现了。咱们也请你为此作出本身的努力。
程序员
Perl之因此强大, 是由于有CPAN, CPAN上面有无数的开源模块, 从科学计算到桌面应用到网络等等各个方面都有大量的模块! 而且世界上也还有无数的人在向上面添加模块! 若是你想要用PERL实现某功能, 不用本身作, 在CPAN上面搜一搜, 多半都会获得已有的结果! CPAN("the Comprehensive Perl Archive Network"全面的 Perl 存档网络)是查找任何 Perl 有关的东西的中心仓库。它包含从整个 Perl 社区收集来的智慧:成百上千的 Perl 模块和脚本,至关于好几本书的文档,以及整个 Perl 发布。若是有东西是用 Perl 写的,并且这个东西颇有用并且是自由的,那么它颇有可能就在 CPAN 上。web
缺点更多精品课程:shell
7天玩转云服务器
数据库
阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场)服务器