1章成为大师
第2章高级正则表达式
第3章安全编程技术
第4章调试Perl程序
第5章剖析Perl程序
第6章Perl基础测试
第7章清理Perl程序
第8章符号表和typeglob
第9章动态子程序
第10章修改模块和临时调整模块
第11章配置Perl程序
第12章检查和汇报错误
第13章日志
第14章数据持久化
第15章使用Pod
第16章位操作
第17章奇妙的绑定变量
第18章以模块的形式
1应该熟悉的话题:使用Perl模块,编辑Perl模块,引用变量、子程序和文件句柄、基本正则表达式的语法和原理、面向对象。
2引用操作符qr()可以编译正则表达式供之后使用,并能把结果作为引用返回。特殊的(?)序列可以让我们的正则表达式更加强大和简单。锚定符\G可以让我们从上次离开的地方继续匹配。选项/c可以让我们尝试多种模式而不会再匹配失败的时候重置当前匹配的位置。
3不明智地到处传递数据会招来很多问题,所以给我们提供了方法。污点检测是一个工具,能够帮助我们找到程序中试图把外部数据传递到程序外面的部分。Perl帮助我们检测数据,并在使用之前把它们变成可以信任的数据。
4我们可以在希望的任何层次上调试Perl程序:可以给希望检查的部分加上调试代码,也可以集成开发环境从外面调试它,甚至可以在运行程序的机器以外的另一台电脑上调试它。
5在我们确定如何改进Perl程序时,须要对程序进行剖析以找到需要重点解决的部分。
6 基准测试是一个技巧性很强的话题。它涉及了大量的数据,须要对真正发生的事情有很好的理解。我们不仅须要分析Perl程序,还须要考虑系统的操作系统,使用的Perl解析器、编译解析器的方式,以及其他一切可能影响程序的因素。而且,基准测试不仅限于速度。我们可能须要比较两种方法的内存使用情况,或者看看哪种方法占用了更多的带宽。不同的情况下有不同的制约因素。
7 我们拿到的代码可能是各种格式、各种编码或经过其他技巧处理后难以阅读的代码。不过我们有很多工具可以清理代码并分析出它所做的事情。
8 符号表是记录Perl的全局变量的系统,typeglob是操作符号表的途径。在某些情况下——比如给子程序传递文件句柄的时候,由于没有办法对文件句柄这个软件包变量使用引用,我们必须使用typeglob。一些有着特殊功能的模块,在使用Typeglob。
9 通过使用子程序引用,我们可以用数据来表示行为。我们可以像任何其他标量一样使用子程序引用。
10 对于一个面向对象的模块来说,我们可以创建一个子程序来改掉我们不喜欢的部分。如果由于某种原因我们不希望派生子类,我们可以替换掉该模块的部分内容,就像我们可以处理任何模块一样。
11 我们不用在程序中把用户定义的数据写成代码。我们有各种方法来让用户不用看源代码就可以指定配置和运行选项。Perl有很多的模块可以处理命令行参数,在CPAN上有更多的模块,有些格式甚至有多重模块可供选择。
12 Perl有很多种汇报错误的方法,我们必须知道哪种方法适合我们所做的事情。
13 我们可以使用模块Log::Log4perl轻松地给程序添加日志。Log::Log4perl是软件包Log4j的Perl版本。我们可以使用easy提供的简单配置,也可以自己指定更复杂的配置。
14 把数据变成字符串是一种在程序内和程序之间传递数据的轻便方法。更复杂一些的方法是使用二进制格式,Perl也带有处理二进制格式的模块。不管哪一种方法,我们都有多种选择而不必使用数据库服务器。
15 Pod是Perl的标准文档格式,我们可以使用Perl自带的工具轻松地把它转换成其他格式。如果这些工具不能满足需求,我们可创建自己的Pod转换程序来支持新的格式,或者是想已有的格式添加一些新的功能。
16 有了位向量,我们可以和其他语言几乎相同的方法来管理Perl内存和数据结构。
17 用Perl语言重新实现Perl的数据类型的代码。Tie接口使我们可以做任何想做的事情,不过我们需要做所有的工作才能让变量完成需要的功能。
18 我们可以创建想模块一样的程序。可以像运行其他的程序一样运行它,也可以像模块一样开发和测试它。
第2章高级正则表达式
第3章安全编程技术
第4章调试Perl程序
第5章剖析Perl程序
第6章Perl基础测试
第7章清理Perl程序
第8章符号表和typeglob
第9章动态子程序
第10章修改模块和临时调整模块
第11章配置Perl程序
第12章检查和汇报错误
第13章日志
第14章数据持久化
第15章使用Pod
第16章位操作
第17章奇妙的绑定变量
第18章以模块的形式
1应该熟悉的话题:使用Perl模块,编辑Perl模块,引用变量、子程序和文件句柄、基本正则表达式的语法和原理、面向对象。
2引用操作符qr()可以编译正则表达式供之后使用,并能把结果作为引用返回。特殊的(?)序列可以让我们的正则表达式更加强大和简单。锚定符\G可以让我们从上次离开的地方继续匹配。选项/c可以让我们尝试多种模式而不会再匹配失败的时候重置当前匹配的位置。
3不明智地到处传递数据会招来很多问题,所以给我们提供了方法。污点检测是一个工具,能够帮助我们找到程序中试图把外部数据传递到程序外面的部分。Perl帮助我们检测数据,并在使用之前把它们变成可以信任的数据。
4我们可以在希望的任何层次上调试Perl程序:可以给希望检查的部分加上调试代码,也可以集成开发环境从外面调试它,甚至可以在运行程序的机器以外的另一台电脑上调试它。
5在我们确定如何改进Perl程序时,须要对程序进行剖析以找到需要重点解决的部分。
6 基准测试是一个技巧性很强的话题。它涉及了大量的数据,须要对真正发生的事情有很好的理解。我们不仅须要分析Perl程序,还须要考虑系统的操作系统,使用的Perl解析器、编译解析器的方式,以及其他一切可能影响程序的因素。而且,基准测试不仅限于速度。我们可能须要比较两种方法的内存使用情况,或者看看哪种方法占用了更多的带宽。不同的情况下有不同的制约因素。
7 我们拿到的代码可能是各种格式、各种编码或经过其他技巧处理后难以阅读的代码。不过我们有很多工具可以清理代码并分析出它所做的事情。
8 符号表是记录Perl的全局变量的系统,typeglob是操作符号表的途径。在某些情况下——比如给子程序传递文件句柄的时候,由于没有办法对文件句柄这个软件包变量使用引用,我们必须使用typeglob。一些有着特殊功能的模块,在使用Typeglob。
9 通过使用子程序引用,我们可以用数据来表示行为。我们可以像任何其他标量一样使用子程序引用。
10 对于一个面向对象的模块来说,我们可以创建一个子程序来改掉我们不喜欢的部分。如果由于某种原因我们不希望派生子类,我们可以替换掉该模块的部分内容,就像我们可以处理任何模块一样。
11 我们不用在程序中把用户定义的数据写成代码。我们有各种方法来让用户不用看源代码就可以指定配置和运行选项。Perl有很多的模块可以处理命令行参数,在CPAN上有更多的模块,有些格式甚至有多重模块可供选择。
12 Perl有很多种汇报错误的方法,我们必须知道哪种方法适合我们所做的事情。
13 我们可以使用模块Log::Log4perl轻松地给程序添加日志。Log::Log4perl是软件包Log4j的Perl版本。我们可以使用easy提供的简单配置,也可以自己指定更复杂的配置。
14 把数据变成字符串是一种在程序内和程序之间传递数据的轻便方法。更复杂一些的方法是使用二进制格式,Perl也带有处理二进制格式的模块。不管哪一种方法,我们都有多种选择而不必使用数据库服务器。
15 Pod是Perl的标准文档格式,我们可以使用Perl自带的工具轻松地把它转换成其他格式。如果这些工具不能满足需求,我们可创建自己的Pod转换程序来支持新的格式,或者是想已有的格式添加一些新的功能。
16 有了位向量,我们可以和其他语言几乎相同的方法来管理Perl内存和数据结构。
17 用Perl语言重新实现Perl的数据类型的代码。Tie接口使我们可以做任何想做的事情,不过我们需要做所有的工作才能让变量完成需要的功能。
18 我们可以创建想模块一样的程序。可以像运行其他的程序一样运行它,也可以像模块一样开发和测试它。