最近接到一个任务是这样的,一台Solaris服务器上需要运行一个脚本,每天统计MySQL中的数据并生成报表。本来这是一个可以就事论事的小项目,但是为了以后的灵活和可扩展性,我设计了一个使用XML做统计模版配置的方案。由于在Bash下不太好实现XML的访问,因此我考虑用Perl来实现这个脚本。
Perl是一个强大的脚本语言,本来是设计应用在文本处理方面的,但是后来发展的越来越强大,已经可以处理网络、图形、系统、文件等等各个方面的内容。Perl本身内置了丰富的操作符和函数,外部也有多年积累下来的大量模块。perl 教程但是不知道什么原因在国内好像很少有人用。关于Perl的历史我就不多说了,有兴趣可以上网查一下。有一点要说的是,目前Perl最新的版本是5.8.6,而Perl6虽然已经设计很久了但是由于自举问题目前还没有一个可用的版本。为了解决这个问题,的唐宗汉发起的Pugs项目正在快速的实施中,可能很快就能有结果了,有兴趣的朋友可以多多关注一下,也许还可以为开源世界做点贡献。
虽然很早以前就了解过Perl,但是从来就没有实际的用它做过项目,因此这次的实现是一个边学边做的过程。作为一个程序员,学习一种新的语言总会有一点惯性思维,加之Perl在语法上与C语言比较类似。因此我想在这片文章中主要以C为背景做一个比较。这种比较不是比较语言上的优劣,而是说明同样的功能如何在Perl中实现以及之间的区别。限于篇幅,具体的技术实现的细节我就不在这里多说了,你可以在末尾的资源一节中找到很多相关的文章。如果你没有接触过Perl,我想你可能更希望看到学习Perl的过程中可能会遇到的一些问题以及解决方法。
工欲善其事,必先利其器
关于环境的搭建,有这样几个需要注意的地方:
1、 Windows平台下对应的是ActivePerl,可以免费下载。
2、 去UE的网站上下载Perl的AutoComp文件,可以实现自动完成功能。
3、 下载Perl对应的语法加亮的Tag文件并加入到UE中,可以更块的发现拼写错误。
4、 在UE设置一个快捷工具,命令行为C:\Perl\bin\perl.exe "%F"(捕获输出),可以实现快速运行并显示结果。
5、 如果你不喜欢UE,那么我推荐Source Insight
巧妇难为无米之炊
起始从某种角度来说,程序员和厨子是一样的。要做出一桌大餐来,首先得看看手上有什么原料,然后才能琢磨一下用这些东西能做出什么好吃的来。或者说想做什么东西,得先备好料才行。
好了,去查查资料,看看访问和读写XML都需要什么东西。正如同C语言本身带了很多标准函数库一样,Perl本身也有函数库,并把这些函数库称为Module(模块)。查了一下资料,发现要访问MySQL需要DBI和DBD::MySQL两个模块,那么去哪里找这些模块呢。这里给大家介绍一个Perl的Module集散地 ,这里包含了八千多个Module,可以从这里下载到几乎各种各样的Module。可以手工下载后安装,也可以使用工具来自动安装。在Windows下是可以使用ppm进行自动安装,例如DBD的安装过程如下:
C:\>ppm
…
ppm> search DBI
Searching in Active Repositories
… 一大堆与DBI相关的包的列表,其中就包括DBI这个包
ppm>install DBI
…
ppm>install DBD::mysql 如果知道模块的名字也可以直接安装
…
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-36367-1.html
一个让人随便入侵领海领空的国家还谈什么强国