Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
Elements of Programming with Perl

Inside the book

Sample chapters Table of Contents Errata Index Preface Book Reviews Source Code Author Online

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

Elements of Programming with Perl
Andrew L. Johnson

1999 | 368 pages
ISBN: 1884777805
$34.95 Softbound print book  

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

DESCRIPTION

As the complexity of web sites grows, more and more webmasters need to acquire programming skills. Naturally, such persons are inclined to learn Perl, the "language of the web." However, there has been no book to treat Perl as the first programming language; every Perl book assumes that the reader can program already.

Until now.

Elements of Programming with Perl is a general introduction to programming, using Perl as the implementation language. It starts at the beginning, teaching programming style, structure, and design. It covers all the fundamental elements of Perl (e.g., pattern matching and text processing) and proceeds to advanced concepts, including modular programming, abstract data structures, and object oriented programming.

Elements of Programming with Perl contains numerous examples and diagrams that illustrate concepts, algorithms and techniques. Complete example programs show the new programmer how to tie concepts together to solve real-world problems.

Elements of Programming with Perl is designed for the new programmer who needs to know Perl, and for the regular Perl user who would like to improve his or her programming skills.

Translation rights for Elements of Programming with Perl have been granted for France, Germany, India and Japan. If you are interested in learning where to buy this book in a language other than English, please inquire at your local bookseller.

WHAT THE EXPERTS SAY ABOUT THIS BOOK...

"It is a very good introduction to Perl -- and programming -- for the neophyte who has never taken a programming course, or the webmaster who never learned the lessons that would be taught in one. It makes a great companion to the Llama for those who need more thorough explanations, or just like a little theory with their tools."
--Rachel Rawlings at perlmonth.com

"This book would appear to fall neatly between Learning Perl, which is targeted not only to the Perl beginner, but to the programming beginner as well, and Programming Perl, making it an ideal entry text for experienced programmers in other languages."
--Editor Arthur Corliss with Alaska Perl Mongers

"New to programming, and think Perl may be up your alley? Andrew Johnson's excellent Elements of Programming with Perl will teach you both disciplines...From the start, Johnson's explanations are clean and clear. It's obvious that he's polished his didactic style through years of real world teaching. Also from the start, good programming practices receive due emphasis...

This is a good introduction to Perl, and a very good introduction to programming in general. Johnson promotes good habits and discipline... It's a rare book that teaches as well as it informs, so take the plunge and teach yourself Perl and programming."
--chromatic, slashdot.org

"It seems quite clear that Elements of Programming with Perl is the first book that you would want to actually recommend…[which teaches Perl to non-programmers]…without worrying that they'll have to be entirely retrained afterwards. Johnson does a good job of presenting the basics. After a short introduction to both programming and Perl, the book moves immediately on to structure and style…I am quite happy to recommend this title. The book is informative and clear, and is a good introduction to basic programming and Perl."
--David Adler, Perl Mongers User Group

"Continuing to expand its very strong series of Perl books, Manning Publications has come out with Elements of Programming with Perl, a beginner's Perl text that's meant, in part, to compete with O'Reilly & Associates' Learning Perl and other standard texts of the Perl programming community. Elements of Programming with Perl communicates the basics of the language without the smarty-pants tone that the O'Reilly book slips into from time to time.

...this book provides an excellent introduction to procedural programming concepts (and the special rules of regular expressions), using Perl as a medium. It's a great book for novice and intermediate programmers."
--David Wall, The Development Exchange Enterprise Zone

WHAT THE READERS SAY ABOUT THIS BOOK...

"I learnt enough about Perl from this book to actually be productive with it, and it was enjoyable enough to encourage me to start playing with the language."
--Kelsey Gray, Perl Newbie

ABOUT THE AUTHOR...

Not only does Andrew L. Johnson hold a master's degree in anthropology, but he also has more than 15 years of experience programming in a variety of languages. As a consultant he does custom data manipulation and analysis programming for market research. He has written training materials, articles for scientific journals, and articles and reviews for the Linux Journal. He has been a regular contributor to the comp.lang.perl.misc newsgroup.

Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.