Preface |
|
xi | |
|
|
1 | (18) |
|
|
1 | (3) |
|
What Does ``Perl'' Stand For? |
|
|
4 | (4) |
|
|
8 | (4) |
|
How Do I Make a Perl Program? |
|
|
12 | (5) |
|
|
17 | (2) |
|
|
18 | (1) |
|
|
19 | (21) |
|
|
19 | (1) |
|
|
19 | (3) |
|
|
22 | (4) |
|
|
26 | (1) |
|
|
27 | (2) |
|
|
29 | (5) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
|
The while Control Structure |
|
|
37 | (1) |
|
|
37 | (1) |
|
|
38 | (2) |
|
|
39 | (1) |
|
|
40 | (16) |
|
Accessing Elements of an Array |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (2) |
|
|
45 | (2) |
|
Interpolating Arrays into Strings |
|
|
47 | (1) |
|
The foreach Control Structure |
|
|
48 | (1) |
|
Perl's Favorite Default: $ |
|
|
49 | (2) |
|
|
51 | (3) |
|
|
54 | (2) |
|
|
55 | (1) |
|
|
56 | (17) |
|
System and User Functions |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
57 | (1) |
|
|
58 | (2) |
|
|
60 | (2) |
|
Private Variables in Subroutines |
|
|
62 | (1) |
|
|
63 | (1) |
|
Variable-length Parameter Lists |
|
|
64 | (3) |
|
Notes on Lexical (my) Variables |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (4) |
|
|
71 | (2) |
|
|
73 | (13) |
|
|
73 | (3) |
|
|
76 | (4) |
|
|
80 | (3) |
|
|
83 | (3) |
|
|
84 | (2) |
|
|
86 | (12) |
|
Input from Standard Input |
|
|
86 | (2) |
|
Input from the Diamond Operator |
|
|
88 | (2) |
|
|
90 | (1) |
|
Output to Standard Output |
|
|
91 | (3) |
|
Formatted Output with printf |
|
|
94 | (4) |
|
|
96 | (2) |
|
Concepts of Regular Expressions |
|
|
98 | (7) |
|
What Are Regular Expressions? |
|
|
98 | (2) |
|
|
100 | (2) |
|
|
102 | (3) |
|
|
103 | (2) |
|
More About Regular Expressions |
|
|
105 | (10) |
|
|
105 | (2) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (2) |
|
|
111 | (4) |
|
|
113 | (2) |
|
Using Regular Expressions |
|
|
115 | (13) |
|
|
115 | (1) |
|
|
116 | (1) |
|
The Binding Operator, =∼ |
|
|
117 | (1) |
|
Interpolating into Patterns |
|
|
118 | (1) |
|
|
119 | (3) |
|
|
122 | (3) |
|
|
125 | (1) |
|
|
126 | (2) |
|
|
127 | (1) |
|
|
128 | (20) |
|
The unless Control Structure |
|
|
128 | (1) |
|
The until Control Structure |
|
|
129 | (1) |
|
|
130 | (1) |
|
The Naked Block Control Structure |
|
|
131 | (1) |
|
|
132 | (1) |
|
Autoincrement and Autodecrement |
|
|
133 | (2) |
|
The for Control Structure |
|
|
135 | (3) |
|
|
138 | (4) |
|
|
142 | (6) |
|
|
147 | (1) |
|
Filehandles and File Tests |
|
|
148 | (20) |
|
|
148 | (2) |
|
|
150 | (2) |
|
|
152 | (3) |
|
|
155 | (2) |
|
Reopening a Standard Filehandle |
|
|
157 | (1) |
|
|
157 | (11) |
|
|
167 | (1) |
|
|
168 | (6) |
|
Moving Around the Directory Tree |
|
|
168 | (1) |
|
|
169 | (1) |
|
An Alternate Syntax for Globbing |
|
|
170 | (1) |
|
|
171 | (2) |
|
Recursive Directory Listing |
|
|
173 | (1) |
|
|
173 | (1) |
|
Manipulating Files and Directories |
|
|
174 | (18) |
|
|
174 | (2) |
|
|
176 | (1) |
|
|
177 | (5) |
|
Making and Removing Directories |
|
|
182 | (2) |
|
|
184 | (1) |
|
|
184 | (1) |
|
|
185 | (1) |
|
|
185 | (7) |
|
|
190 | (2) |
|
|
192 | (16) |
|
|
192 | (3) |
|
|
195 | (1) |
|
The Environment Variables |
|
|
196 | (1) |
|
Using Backquotes to Capture Output |
|
|
197 | (4) |
|
|
201 | (2) |
|
Getting Down and Dirty with Fork |
|
|
203 | (1) |
|
Sending and Receiving Signals |
|
|
204 | (4) |
|
|
206 | (2) |
|
|
208 | (13) |
|
Finding a Substring with index |
|
|
208 | (1) |
|
Manipulating a Substring with Substr |
|
|
209 | (2) |
|
Formatting Data with sprintf |
|
|
211 | (2) |
|
|
213 | (8) |
|
|
219 | (2) |
|
|
221 | (12) |
|
|
221 | (3) |
|
Manipulating Data with pack and unpack |
|
|
224 | (1) |
|
Fixed-length Random-access Databases |
|
|
225 | (3) |
|
Variable-length (Text) Databases |
|
|
228 | (5) |
|
|
232 | (1) |
|
Some Advanced Perl Techniques |
|
|
233 | (16) |
|
Trapping Errors with eval |
|
|
233 | (3) |
|
Picking Items from a List with grep |
|
|
236 | (1) |
|
Transforming Items from a List with map |
|
|
237 | (1) |
|
|
238 | (1) |
|
More Powerful Regular Expressions |
|
|
239 | (3) |
|
|
242 | (7) |
|
|
247 | (2) |
A. Exercise Answers |
|
249 | (32) |
B. Beyond the Liama |
|
281 | (22) |
Index |
|
303 | |