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