Index

Symbols
- operator 65
! operator 89
!~ operator 104, 198
$ 71, 102, 336
$! 53, 54, 100
$" 71, 336
$, 102
$. 101, 336
$/ 102, 336
$^W 336
$_ 53, 88, 101, 104, 111, 336
$0 336
$1 110
% operator 66
&& operator 89
* operator 65
** operator 65
+ operator 65
. operator 66
.. operator 94
/ operator 65
<=> operator 218
<> 103
= 64, 266
= operator 47, 51, 64
= vs. == 47
=> operator 72
=~ 43, 53
-> operator 145
@_ 123, 128
|| operator 52, 89

A
-a 335
abstract data structures 301
     heap 316
     linked list 309
     queues 307
     stacks 301
accessor function 327
ActiveState 10
algorithm 6
     running time 286, 290
     searching 281
alias 88, 128
anchor 106, 193
     $ 106, 193
     \A 194
     \B 107, 194
     \b 106, 193
     \G 194
     \Z 194
     ^ 106, 193
and operator 89
anonymous array 156
anonymous hash 156, 296
arguments 123
$ARGV 103, 111, 336
@ARGV 51, 102, 103, 111, 336
ARGV 103, 111, 337
arithmatic operators 65
arrays 51, 69
     access 69
     assignment 69
     associative 71
     elements 70
     interpolation 71
     multi-dimensional 142, 147
     nested 142
     slices 71
     subscripts 69
     swapping elements 70
arrow operator 145
assembly language 6
assignment 64
associative array (see hash) 71
autovivification 173

B
\B (non-word boundary) 107
\b 106
backreference 109, 195, 197
backslash escape 62, 105, 112
backslash interpretation 62
backslash operator 75, 143
backstepping 188
backtics 227
backtracking 197
binary 340
binary search 282
binding 104
binding operator 43, 53
bless 296
blocks 79
Boolean 94
bubble sort 284

C
-c 45, 333
CGI.pm 249
chaining functions 221
character class 105, 188
characters 212
child class 307
chmod 332
chomp 42
chown 332
close 53
closedir 228, 251
closures 153, 154
cmp operator 218
code 243
     comments 24-28
     pseudo-code 36
     structure 20-21
     style 19-31
command line options 171, 239
complement 212
concatenation 66
concatenation operator 66
continue 85, 87
control statements 36
cos 278
CPAN 235

D
\D 106
-d 335
\d 43, 106
__DATA__ 114
DATA 114, 337
data
     literal 60
     numeric 61
     strings 61
data types 60
     list data 67-68
     scalar data 60-63
Date::Manip 242, 278
debugger 262, 264
     c 265
     commands 265
     D 267
     invoking 262
     l 266
     q 264
     R 267
     s 264
     watch expression 265
     x 264
debugging 257-268
     the perl debugger 262
debugging steps 262
defined 101
design 33, 35
development cycle 33
     coding 40-45
     debugging 45-47
     design 35-40
     maintenance 47-49
     specification 34-35
die 53, 100
documentation 160
     POD 161-164
     source code 164
documents 12
dot 66
double-quoted strings 61

E
-e 334
each 73
elsif 47
enclosing 105
__END__ 114
endless loop
     see infinite loop 84
%ENV 337
eof 111
eq 43
Eratosthenes, sieve of 93
error 53
eval 332
evaluated 91
exec 226
exit 120
exponentiation operator 65
@EXPORT 275
@EXPORT_OK 276
expression 43, 65
external command 227

F
-F 335
@F 337
factorial 135
false values 80, 90
FAQ 33
faqgrep 49, 230
Fibonacci 154
file 99
file handle 52, 99-103
File::Basename 238
filename 99
filetest operators 229
for loop 85, 101
foreach 52, 88
fork 332
function
     see subroutine 122

G
/g 194
Getopt
     Long 241
     Std 239
GIFgraph 244
global variables 125, 127
grep 217

H
h2xs 277
hash 71
     adding elements 72
     deleting elements 73
     key 71
     key/value pairs 72
     nested 149
     slices 73
     values 72
heap 286
     array representation 287
     as a class 316
     heap property 287
here-document 118
hexidecimal 61, 340
high level language 7

I
-i 334
/i 203
if 38, 80
     as statement modifier 92
     else 38, 82
     elsif 39, 84
import 274
@INC 50, 237, 272, 337
index 208
indicator 43
infinite loop
     see endless loop 84
inheritance 275, 299
input operator 65, 101, 102
     context 100
input record separator 102
install
     modules 236
     Perl 10
int 41
interpolation 42, 62
interpreted vs. compiled 9
IO Socket 331
@ISA 275, 299, 308

J
join 114

K
keys 73, 118
Knuth, Donald 165

L
language 12, 49
last 87
length 116
lexical variables 124
line directive 167
linear search 282
list context 74
list separator 71
literal data 60, 61
literate programming (LP) 36, 164-170
     example 166
     tangled 165
     weaving 165
local 125, 126
logical operators 43, 89-91
lookahead 198
lookbehind 198
loop 36, 84-89
     determinate 87
     for 85, 101
     foreach 52, 88
     indeterminate 84
     infinite 84
     until 41
     while 41, 84
loop variable 88
LWP::Simple 243

M
-M 335
m// 43, 103
machine code 6
machine language 6
maintenance 33
map 216
markup language 161
match operator 43, 103, 203
     /i 105
     /g 113, 190
     /m 204
     /o 205
     /s 106, 204
     /x 205
     \A 204
     \Z 204
and context 206
Math::Trig 278
matrilineal 286
mixed structures 149
mkdir 332
modules 272
     creating 274
     getting 235
     h2xs 274
     installing 236
     purpose 278
     using 237
my 31, 63, 124, 125

N
-n 334
\n 62
ne (not equal) 85
next 87, 118
not operator 89
notangle 166
noweb
     code chunks 165
     continued chunks 166
     documentation chunks 165
     line directive 168
numeric data 61

O
/o 205
object-oriented programming 293
     abstraction 293
     classes 294
     constructor 295
     encapsulation 293, 294
     example 321
     inheritance 293, 295
     polymorphism 293, 295
     octal 61, 340
open 52, 99, 100
     pipe 227
opendir 228, 251
operator 185
or operator 43, 52, 89
output field separator 71, 102
output record separator 102

P
-p 334
package 273, 295
parameters 127
     and references 134
pattern 103, 104
Perl 29, 45, 207, 242
POD 49, 161-164
     formatting tags 162
     minimal pod-page 163
     pod2html 162
     pod2latex 162
     structural tags 162
     verbatim paragraphs 163
pop 71
pqtangle 170
precedence 65, 89
print 68
priority queue 320
prototypes 137
pseudo-code 36
push 71

Q
qw 68

R
Ramsey, Norman 165
rand 41
range operator 94
readdir 228, 251
recursion 135, 154
redo 87
references 74, 134, 142-158
     anonymous arrays 143
     anonymous hashes 143
     assignment 75
     autovivification 146
     creating 143, 158
     dereferencing 144, 158
     implicit 146
     to a variable 75
regex 103
     see regular expressions 103
regular expressions 43, 103, 184-201
     alternation 107, 185
     anchor 106, 193
     and prime numbers 196
     backreference 109, 195
     backstepping 188
     capturing 109, 195
     character class 188
     concatenation 185
     dot (.) 106, 185
     greedy quantifiers 191
     grouping 185, 195
     iteration 185
     lookahead 198
     lookbehind 198
     quantifiers 108
     shortcuts 191
relational operators 81
rename 332
repetition 66
repetition operator 66
require 275
reverse 223
     list context 223
     scalar context 223
rindex 208
rmdir 332
running Perl 11

S
\s 106
s/// 53
scalar 41, 60, 63
scalar context 74
Schwartzian Transform 221, 222, 251
scope 79, 123-127
     and subroutines 125
searching 281
seek 173, 175
shebang 11
shift 71
sieve of Eratosthenes 93
%SIG 337
sin 278
slices 70
sort 217
     binary search 282
     linear search 282
sorting 283-291
     bubble sort 284
     heap sort 286
     insertion sort 283
     selection sort 283
specification 33
split 113, 116
sqrt 95
square root 95
standard error 99
standard input 99
standard output 99
statements 79, 99
STDERR 99
STDIN 42, 52, 65, 99, 337
STDOUT 99, 337
strict 29-31, 40, 127
string number conversions 67
strings 61
     double-quoted 61
     single-quoted 62
sub 122
subroutine 122-123
     and context 130
     arguments 123, 128
     chaining 221
     closures 153
     defining 122
     invoking 122
     names 133
substitution operator 53, 103, 112, 207
     /e 207
substr 208
     assignment to 209
system 226

T
tangle 165-168
tell 173
top-down design 35
tr// 211
     /c 212
     /d 212
     /s 212
tree structure 286
true values 80, 90
truth table 90

U
undef 101
unless 90
unlink 332
unshift 71
until 90

V
-V 335
-v 335
values 73
variables 41
     array 51, 69-71
     assignment 64
     declaring 63
     hash 71-73
     interpolation 62
     list assignment 42
     loop 88
     naming 21-23, 63
     scalar 60, 63
     types 60
vars 127, 275
$VERSION 275

W
\W 106
-w 29-31, 67
\w 106
Wall, Larry 7
wantarray 130
weaving 165, 168
while 101
     and input operator 101
     continue 85

X
x operator 66