Perl是一个强大的脚本语言,本来是设计应用在文本处理方面的,但是后来发展的越来越强大,已经可以处理网络、图形、系统、文件等等各个方面的内容。Perl本身内置了丰富的操作符和函数,外部也有多年积累下来的大量模块。但是不知道什么原因在国内好像很少有人用。关于Perl的历史我就不多说了,有兴趣可以上网查一下。有一点要说的是,目前Perl最新的版本是5.8.6,而Perl6虽然已经设计很久了但是由于自举问题目前还没有一个可用的版本。为了解决这个问题台湾的唐宗汉发起的Pugs项目正在快速的实施中,可能很快就能有结果了,有兴趣的朋友可以多多关注一下,也许还可以为开源世界做点贡献。
虽然很早以前就了解过Perl,但是从来就没有实际的用它做过项目,因此这次的实现是一个边学边做的过程。作为一个程序员,学习一种新的语言总会有一点惯性思维,加之Perl在语法上与C语言比较类似。因此我想在这片文章中主要以C为背景做一个比较。这种比较不是比较语言上的优劣,而是说明同样的功能如何在Perl中实现以及之间的区别。限于篇幅,具体的技术实现的细节我就不在这里多说了,你可以在末尾的资源一节中找到很多相关的文章。如果你没有接触过Perl,我想你可能更希望看到学习Perl的过程中可能会遇到的一些问题以及解决方法。
工欲善其事,必先利其器
要写代码,首先至少得有一个编辑器。Perl是跨平台的一种解释型语言,可以在Unix/Linux/Windows/Mac等平台上运行。具体对应平台上的编辑器,最简单的方案是Unix下用vi,Windows下用UltraEdit。当然也有商业化的IDE,不过我尝试了一下发现并不是那么的好用,因此我在Windows平台上以UltraEdit作为编辑环境,完成后移植到Solaris平台上。
关于环境的搭建,有这样几个需要注意的地方:
1、 Windows平台下对应的是ActivePerl,可以免费下载。
2、 去UE的网站上下载Perl的AutoComp文件,可以实现自动完成功能。
3、 下载Perl对应的语法加亮的Tag文件并加入到UE中,可以更块的发现拼写错误。
4、 在UE设置一个快捷工具,命令行为C:\Perl\bin\perl.exe "%F"(捕获输出),可以实现快速运行并显示结果。
5、 如果你不喜欢UE,那么我推荐Source Insight