最近接到一个任务是这样的,一台solaris服务器上需要运行一个脚本,每天统计mysql数据库中的数据并生成报表。本来这是一个可以就事论事的小项目,但是为了以后的灵活和可扩展性,我设计了一个使用xml做统计模版配置的方案。 由于在bash下不太好实现xml的访问,因此我考虑用perl来实现这个脚本。
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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器