正则表达式(Regular Expression)是指定模式的一种方法,这种模式对文本进行筛选,只匹配特定的字符串。一旦匹配到了一个字符串,就可以从大量的文本中将其抽取出来,或者利用另一个字符串来替代这个字符串。其使用的格式为/pattern/,使用的匹配操作符为: =~(匹配),!~(不匹配)。Perl语言中因为有这个功能,所以对于字符串的处理能力是非常强有力的。
一.Perl简介Perl是Practical Extractionand Report Language的编写,它是由LarryWall设计的,主要用于UNIX环境下编程,当然目前它也是只支持Windows系统的,本文主要也是讲在Windows下的Perl编程,并侧重于黑客安全方面。Perl如脚本语言一般,无需经编译器来编译才能运行代码,应用起来也很简便,特别是用它来写exploit尤为流行。
Perl 是一种能完成任务的语言。 当然,如果你的工作就是写程序,那么从理论上来讲,你可以使用任何“完整”的计算机语言来完成任务。但是从我们的经验来看,计算机语言的区别很大程度上不在它能干什么,而是在它做事情的时候是否简单。从一个极端来说,那些所谓的第四代语言做某些事情的时候相当容易,但是做其它一些事情的时候几乎不可能。从另外一个极端来看,那些所谓的工业级的语言在做任何事情的时候都几乎一样困难。 Perl 是不同的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。
Perl 是一种能完成任务的语言。 当然,如果你的工作就是写程序,那么从理论上来讲,你可以使用任何“完整”的计算机语言来完成任务。但是从我们的经验来看,计算机语言的区别很大程度上不在它能干什么,而是在它做事情的时候是否简单。从一个极端来说,那些所谓的第四代语言做某些事情的时候相当容易,但是做其它一些事情的时候几乎不可能。从另外一个极端来看,那些所谓的工业级的语言在做任何事情的时候都几乎一样困难。 Perl 是不同的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。 Perl 是不同的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。
本教程将与您一起学习在Unix平台上用Perl创建CGI。和其它教程不同,我们并不假设你了解CGI、Perl或Unix。 学完本教程后,你将能够建立Perl的计数器、留言板和处理安全口令的程序。同时你也会对Perl语言有所了解,学习使用其变量、if语句和循环。
为了便于参考,本章以字母顺序(注:有时候,紧密联系的函数在系统手册页里组合在一起, 因此我们在这里也将尊重那些分组。比如,要寻找 endpwent 的描述,你得先找 getpwent。) 描述内建的 Perl 函数。每个函数描述以一个该函数语法的简短概要开头。象 THIS 这样的参数 名字代表实际表达式的占位符,而跟在语法概要后面的文本将描述提供(或者省略)该实际参数的 语意。 你可以把函数和文本以及变量想象成一个表达式里的项。或者你可以把它们想象成前缀操作符, 处理它后面的参数。要知道我们有一半时间叫它们操作符。
Perl 是一种能完成任务的语言。 当然,如果你的工作就是写程序,那么从理论上来讲,你可以使用任何“完整”的计算机 语言来完成任务。但是从我们的经验来看,计算机语言的区别很大程度上不在它能干什么 ,而是在它做事情的时候是否简单。从一个极端来说,那些所谓的第四代语言做某些事情 的时候相当容易,但是做其它一些事情的时候几乎不可能。从另外一个极端来看,那些所 谓的工业级的语言在做任何事情的时候都几乎一样困难。 Perl 是不同的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处 理困难问题能力的语言。
一、进程处理函数 1、进程启动函数 2、进程终止函数 3、进程控制函数 4、其它控制函数 二、数学函数 三、字符串处理函数 四、标量转换函数 五、数组和列表函数 六、关联数组函数
在工作和生活中难免有一些文件处理之类的工作需要做,不管你是在Windows下面,还是在Linux下面。当然稍微复杂一些的任务就需要利用正则表达式来完成,很不幸的是Linux shell的正则表达式不太好用,另外对正则表达式的支持也不够好,另外需要学习grep,sed,awk等命令也是挺烦的事儿。
许多程序员凭直觉来编程,这些直觉来自于他们早期养成的习惯和风格。这样写出的程序似乎自然、直观,而且看起来也很不错。但是,如果你想严肃地对待程序员这份职业,那么直觉就远远不够了。《Perl最佳实践》讲述了许多关于Perl语言的编程规则、使用惯例、开发标准和最佳实践,这些内容不仅有助于程序员之间的交流和协同工作,同时也提供了一套思考问题的可靠框架和一种表述解决方案的通用语言。<br> 通过生动幽默的表达,作者Damian Conway为Perl编程人员提供了关于编程艺术的256条规则,这些规则能帮助你编写出更好的Perl代码。这些规则涵盖了代码布局和命名规则,数据和控制结构的选择,程序解构和模块化,接口的设计和实现,面向对象设计,错误处理、程序测试和调试。<br> 本书中所有的规则都是为了写出清晰、健壮、高效、可维护和简洁的程序而设计。Conway博士并不自诩这些规则是最广泛和最清晰的实践集,但实际上,本书确实提供了在实践中被广泛认可和应用的建议,而不是象牙塔似的编程理论。<br> 最特别的是,《Perl最佳实践》提供的规则是实在有效的,世界各地的开发人员已经普遍使用。像Perl语言的初衷一样,这些规则将使你的开发更加出色。
Perl 最初是当做一种 Unix 的胶水语言设计的,但是她早就移植到大多数其它操作系统里了。因为 Perl 几乎可以在任何地方运行,所以 Perl 可以说是当今最具有移植性的编程环境。要想写可移植的 C/C++ 程序,你得在程序里加上一大堆 #ifdef 标签来区分不同的系统。要想写可移植的 Java 程序,你必须理解每种新的 Java 实现的特质。要想写可移植的 shell,你可能要记住每条命令在每种操作系统上的语法,走运的时候你可能可以找到一些公共的东西。而要想写可移植的 Visual Basic 程序,那么你只需要对“移植”有个更灵活的定义就可以了。
Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。 .Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。 .与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。 .Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。 简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。
Perl是非常容易使用的程序语言,或者我们应该说他是方便的程序语言,你可以随手就写完一个Perl的程序,就像你在命令行中打一个指令一样 (注一)。因为Perl的诞生几乎就在于让使用者能够以更好方便的方式去撰写程序码,却不必像写C一样的考虑很多细节。<br> 另外,Perl的黏性非常的强 (注二),你可以用Perl把不同的东西轻易的连接起来。而且你可以用Perl解决你大部分的问题,虽然有些时候你并不想这么做,但这并不表示Perl做不到。
Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。 简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。
Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。 .Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。 .与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。 .Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。 简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。
Perl 是一种能完成任务的语言。 当然,如果你的工作就是写程序,那么从理论上来讲,你可以使用任何“完整”的计算机语言来完成任务。但是从我们的经验来看,计算机语言的区别很大程度上不在它能干什么,而是在它做事情的时候是否简单。从一个极端来说,那些所谓的第四代语言做某些事情的时候相当容易,但是做其它一些事情的时候几乎不可能。从另外一个极端来看,那些所谓的工业级的语言在做任何事情的时候都几乎一样困难。 Perl 是不同的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。
Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。