Intermediate Perl(影印版)

Intermediate Perl(影印版)
作 者: 施瓦茨 福格 菲尼克斯
出版社: 东南大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Perl
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Intermediate Perl(影印版)》作者简介

内容简介

从一个Perl爱好者到一个Perl程序员。《Intermediate Perl》将教您如何把Perl作为编程语言来使用,而不仅只是作为一种脚本语言。Perl是一种灵活多变、功能强大的编程语言,可以应用在从系统管理到网络编程再到数据库操作等很多方面。人们常说Perl让容易的事情变简单、让困难的事情变得可行。《Intermediate Perl》正是关于如何将技能从处理简单任务跃升到胜任困难任务的书籍。《Intermediate Perl》提供对Perl中级编程优雅而仔细的介绍。由畅销的《学习Perl》作者所著,本书提供了《学习Perl》没有涵盖的内容。主题包括:包和命名空间引用和作用域操作复杂数据结构面向对象编程编写和使用模块测试Perl代码为CPAN贡献代码参照《学习Perl》的成功编排格式,本书的每一章都短小到可以在一到两个小时内读完,并在结束时提供一系列练习题帮助您实践刚刚学到的知识。使用本书,您只需熟悉《学习Perl》的内容并有更进一步学习的决心。对于不同的人而言Perl是一种不同的语言。对于某些人而言,它只是快速编写脚本的工具,但对于另外的人来说,它就是一种功能完整的面向对象语言。Perl被应用在各种任务当中,从对文本文件进行快速全局替换,到计算需要数星期才能完成处理的海量复杂科学数据。您的使用决定Perl的面貌。但不论您将Perl应用在什么方面,本书将帮助您让应用更加有效、高效和优雅。《Intermediate Perl》是为了把Perl作为一种编程语言来学习,而不仅是为了写脚本而著。这本书把Perl爱好者变为Perl程序员。

图书目录

Foreword . xiii

Preface xv

1. Introduction 1

What Should You Know Already? 2

What About All Those Footnotes? 2

What’s with the Exercises? 2

What If I’m a Perl Course Instructor? 3

2. Intermediate Foundations 4

List Operators 4

Trapping Errors with eval 8

Dynamic Code with eval 9

Exercises 10

3. Using Modules 11

The Standard Distribution 11

Using Modules 12

Functional Interfaces 12

Selecting What to Import 13

Object-Oriented Interfaces 14

A More Typical Object-Oriented Module: Math::BigInt 15

The Comprehensive Perl Archive Network 15

Installing Modules from CPAN 16

Setting the Path at the Right Time 17

Exercises 19

4. Introduction to References 21

Performing the Same Task on Many Arrays 21

Taking a Reference to an Array 23

Dereferencing the Array Reference 24

Getting Our Braces Off 26

Modifying the Array 26

Nested Data Structures 27

Simplifying Nested Element References with Arrows 29

References to Hashes 30

Exercises 32

5. References and Scoping34

More Than One Reference to Data 34

What If That Was the Name? 35

Reference Counting and Nested Data Structures 36

When Reference Counting Goes Bad 38

Creating an Anonymous Array Directly 40

Creating an Anonymous Hash 42

Autovivification 44

Autovivification and Hashes 47

Exercises 48

6. Manipulating Complex Data Structures 50

Using the Debugger to View Complex Data 50

Viewing Complex Data with Data::Dumper 54

YAML 56

Storing Complex Data with Storable 57

Using the map and grep Operators 59

Applying a Bit of Indirection 59

Selecting and Altering Complex Data 60

Exercises 62

7. Subroutine References63

Referencing a Named Subroutine 63

Anonymous Subroutines 68

Callbacks 70

Closures 70

Returning a Subroutine from a Subroutine 72

Closure Variables as Inputs 75

Closure Variables as Static Local Variables 75

Exercise 77

8. Filehandle References. 79

The Old Way 79

The Improved Way 80

The Even Better Way 81

IO::Handle 82

Directory Handle References 86

Exercises 87

9. Practical Reference Tricks 89

Review of Sorting 89

Sorting with Indices 91

Sorting Efficiently 92

The Schwartzian Multi-Level Sort with the Recursively Defined ata 95

Building Recursively Defined Data 96

Displaying Recursively Defined Data 98

Exercises 99

10. Building Larger Programs 101

The Cure for the Common Code 101

Inserting Code with eval 102

Using do 103

Using require 105

require and @INC 106

The Problem of Namespace Collisions 109

Packages as Namespace Separators 110

Scope of a Package Directive 112

Packages and Lexicals 113

Exercises 113

11. Introduction to Objects115

If We Could Talk to the Animals... 115

Introducing the Method Invocation Arrow 117

The Extra Parameter of Method Invocation 118

Calling a Second Method to Simplify Things 119

A Few Notes About @ISA 120

Overriding the Methods 121

Starting the Search from a Different Place 123

The SUPER Way of Doing Things 124

What to Do with @_ 124

Where We Are So Far... 124

Exercises 125

12. Objects with Data 126

A Horse Is a Horse, of Course of Course—or Is It? 126

Invoking an Instance Method 127

Accessing the Instance Data 128

How to Build a Horse 128

Inheriting the Constructor 129

Making a Method Work with Either Classes or Instances ..130

Adding Parameters to a Method 131

More Interesting Instances 132

A Horse of a Different Color 133

Getting Our Deposit Back 133

Don’t Look Inside the Box 135

Faster Getters and Setters 136

Getters That Double as Setters 136

Restricting a Method to Class-Only or Instance-Only 137

Exercise 137

13. Object Destruction 139

Cleaning Up After Yourself 139

Nested Object Destruction 141

Beating a Dead Horse 144

Indirect Object Notation 145

Additional Instance Variables in Subclasses 147

Using Class Variables 149

Weakening the Argument 150

Exercise 152

14. Some Advanced Object Topics 154

UNIVERSAL Methods 154

Testing Our Objects for Good Behavior 155

AUTOLOAD as a Last Resort 156

Using AUTOLOAD for Accessors 157

Creating Getters and Setters More Easily 158

Multiple Inheritance 160

Exercises 161

15. Exporter 162

What use Is Doing 162

Importing with Exporter 163

@EXPORT and @EXPORT_OK 164

%EXPORT_TAGS 165

xporting in a Primarily OO Module 166

Custom Import Routines 168

Exercises 169

16. Writing a Distribution171

There’s More Than One Way To Do It 172

Using h2xs 173

Embedded Documentation 179

Controlling the Distribution with Makefile.PL 183

Alternate Installation Locations (PREFIX=...) 184

Trivial make test 185

Trivial make install 186

Trivial make dist 186

Using the Alternate Library Location 187

Exercise 188

17. Essential Testing 189

More Tests Mean Better Code 189

A Simple Test Script 190

The Art of Testing 191

The Test Harness 193

Writing Tests with Test::More 195

Testing Object-Oriented Features 197

A Testing To-Do List 199

Skipping Tests 200

More Complex Tests (Multiple Test Scripts) 201

Exercise 201

18. Advanced Testing . 203

Testing Large Strings 203

Testing Files 204

Testing STDOUT or STDERR 205

Using Mock Objects 208

Testing POD 209

Coverage Testing 210

Writing Your Own Test::* Modules 211

Exercises 214

19. Contributing to CPAN. 216

The Comprehensive Perl Archive Network 216

Getting Prepared 216

Preparing Your Distribution 217

Uploading Your Distribution 218

Announcing the Module 219

Testing on Multiple Platforms 219

Consider Writing an Article or Giving a Talk 220

Exercise 220

Appendix: Answers to Exercises 221

Index ... 249