Introduction | p. 1 |
How This Book Is Organized | p. 2 |
Conventions Used in This Book | p. 4 |
Getting Started | p. 5 |
An Introduction to Perl | p. 7 |
What Is Perl and Where Did It Come From? | p. 8 |
Why Learn Perl? | p. 9 |
Getting Started Programming in Perl | p. 12 |
An Example: The Ubiquitous Hello World | p. 13 |
Create Hello World | p. 13 |
Running Hello World | p. 15 |
What to Do if It Doesn't Work | p. 16 |
How Does It Work? | p. 16 |
A Note About Warnings | p. 17 |
Another Example: Echo | p. 18 |
A Third Example: The Cookie Monster | p. 19 |
Going Deeper | p. 20 |
Summary | p. 21 |
QandA | p. 22 |
Workshop | p. 24 |
Quiz | p. 24 |
Exercises | p. 24 |
Answers | p. 25 |
Quiz Answers | p. 25 |
Exercise Answers | p. 26 |
Working with Strings and Numbers | p. 29 |
Scalar Data and Scalar Variables | p. 30 |
Numbers | p. 30 |
Strings | p. 31 |
Converting Between Numbers and Strings | p. 33 |
Scalar Variables | p. 34 |
Constructing Perl Scripts | p. 35 |
Arithmetic Operators | p. 36 |
Arithmetic and Decimal Precision | p. 37 |
An Example: Converting Fahrenheit to Celsius | p. 38 |
Operators for Tests and Comparisons | p. 40 |
The Meaning of Truth | p. 40 |
Equality and Relational Operators | p. 40 |
Logical Operators | p. 42 |
Going Deeper | p. 44 |
Quoting Strings | p. 44 |
Upper- and Lowercase Escapes | p. 45 |
More About Variable Interpolation in Strings | p. 45 |
Summary | p. 46 |
QandA | p. 47 |
Workshop | p. 47 |
Quiz | p. 48 |
Exercises | p. 48 |
Answers | p. 49 |
Quiz Answers | p. 49 |
Exercise Answers | p. 50 |
More Scalar Data and Operators | p. 51 |
Assignment Operators | p. 52 |
Increment and Decrement Operators | p. 53 |
String Concatenation and Repetition | p. 54 |
Operator Precedence and Associativity | p. 55 |
An Example: Simple Statistics | p. 57 |
Input and Output | p. 59 |
File Handles and Standard Input and Output | p. 60 |
Reading a Line from Standard Input with [STDIN] | p. 60 |
Writing to Standard Output with print | p. 61 |
printf and sprintf | p. 62 |
A Note About Using Functions | p. 64 |
Going Deeper | p. 64 |
Useful Number and String Functions | p. 65 |
Bitwise Operators | p. 66 |
The cmp and [=] Operators | p. 66 |
Functions and Function-Like Operators | p. 66 |
Summary | p. 66 |
QandA | p. 67 |
Workshop | p. 68 |
Quiz | p. 68 |
Exercises | p. 68 |
Answers | p. 69 |
Quiz Answers | p. 69 |
Exercise Answers | p. 70 |
Working with Lists and Arrays | p. 71 |
List Data and Variables | p. 71 |
Defining and Using Lists and Arrays | p. 72 |
Creating Lists | p. 73 |
Creating Lists Using the Range Operator | p. 74 |
Assignment and Lists | p. 75 |
Accessing Array Elements | p. 76 |
Growing Arrays | p. 77 |
Finding the End of an Array | p. 77 |
Finding the Length of an Array | p. 78 |
Sorting Lists and Arrays | p. 78 |
Processing Each Element of an Array | p. 79 |
An Example: More Stats | p. 79 |
List and Scalar Context | p. 82 |
What Is Context? | p. 82 |
Finding the Number of Elements in an Array, Revisited | p. 83 |
Context and Assignment | p. 84 |
Other Contexts | p. 85 |
The scalar Function | p. 86 |
Input, Output, and Lists | p. 87 |
Using [STDIN] in List Context | p. 87 |
Printing Lists | p. 88 |
Going Deeper | p. 89 |
Negative Array Indexes | p. 89 |
More About Ranges | p. 89 |
chomp and chop on Lists | p. 89 |
Output Field, Record, and List Separators | p. 90 |
Void Context | p. 91 |
Summary | p. 91 |
QandA | p. 92 |
Workshop | p. 93 |
Quiz | p. 93 |
Exercises | p. 94 |
Answers | p. 94 |
Quiz Answers | p. 94 |
Exercise Answers | p. 95 |
Working with Hashes | p. 97 |
Hashes Versus Arrays and Lists | p. 98 |
Hashes | p. 99 |
List Syntax and Hashes | p. 99 |
Converting Between Arrays, Lists, and Hashes | p. 100 |
Accessing Hash Elements | p. 101 |
Deleting Hash Elements | p. 102 |
Processing All the Values in a Hash | p. 102 |
Hashes and Context | p. 103 |
An Example: Frequencies in the Statistics Program | p. 104 |
Extracting Data into Arrays or Hashes Using the split Function | p. 108 |
Another Example: Alphabetical Lists of Names | p. 109 |
Going Deeper | p. 110 |
Summary | p. 110 |
QandA | p. 111 |
Workshop | p. 112 |
Quiz | p. 112 |
Exercises | p. 112 |
Answers | p. 113 |
Quiz Answers | p. 113 |
Exercise Answers | p. 114 |
Conditionals and Loops | p. 117 |
Complex Statements and Blocks | p. 118 |
Conditionals | p. 118 |
if, if . . . else, and if . . . elsif | p. 118 |
unless | p. 120 |
Conditional Operator? | p. 120 |
Using Logical Operators as Conditionals | p. 121 |
while Loops | p. 122 |
while | p. 122 |
until | p. 124 |
do | p. 124 |
An Example: Pick a Number | p. 125 |
Iteration with for Loops | p. 127 |
for | p. 128 |
foreach | p. 129 |
Controlling Loops | p. 130 |
last, next, and redo | p. 131 |
Labeling Loops | p. 132 |
Using the $_ (Default) Variable | p. 134 |
Input from Files with while Loops and [] | p. 135 |
Going Deeper | p. 138 |
Conditional and Loop Modifiers | p. 138 |
Using continue Blocks | p. 139 |
Constructing switch or case Statements | p. 140 |
goto | p. 140 |
Summary | p. 141 |
QandA | p. 142 |
Workshop | p. 142 |
Quiz | p. 142 |
Exercises | p. 143 |
Answers | p. 143 |
Quiz Answers | p. 143 |
Exercise Answers | p. 144 |
Exploring a Few Longer Examples | p. 147 |
Statistics with a Better Histogram | p. 148 |
A Number Speller | p. 152 |
Text-to-HTML Converter Script | p. 155 |
How It Works | p. 155 |
The Input File | p. 157 |
The Script | p. 157 |
Summary | p. 161 |
Doing More | p. 163 |
Manipulating Lists and Strings | p. 165 |
Array and Hash Slices | p. 166 |
Sorting Lists | p. 167 |
Searching | p. 168 |
An Example: More Names | p. 170 |
Modifying List Elements | p. 175 |
push and pop | p. 175 |
shift and unshift | p. 177 |
splice | p. 177 |
Other Ways to Mess with Lists | p. 178 |
reverse | p. 179 |
join | p. 179 |
map | p. 179 |
Manipulating Strings | p. 180 |
reverse | p. 181 |
index and rindex | p. 181 |
substr | p. 182 |
Going Deeper | p. 183 |
Summary | p. 184 |
QandA | p. 184 |
Workshop | p. 185 |
Quiz | p. 185 |
Exercises | p. 186 |
Answers | p. 186 |
Quiz Answers | p. 186 |
Exercise Answers | p. 187 |
Pattern Matching with Regular Expressions | p. 191 |
The Whys and Wherefores of Pattern Matching | p. 192 |
Pattern Matching Operators and Expressions | p. 193 |
Simple Patterns | p. 195 |
Character Sequences | p. 195 |
Matching at Word or Line Boundaries | p. 196 |
Matching Alternatives | p. 198 |
Matching Groups of Characters | p. 199 |
Character Classes | p. 199 |
Ranges | p. 200 |
Negated Character Classes | p. 200 |
Special Classes | p. 201 |
Matching Any Character with . (dot) | p. 202 |
An Example: Optimizing numspeller | p. 202 |
Matching Multiple Instances of Characters | p. 208 |
Optional Characters with ? | p. 208 |
Matching Multiple Characters with * | p. 209 |
Requiring at Least One Instance with + | p. 210 |
Restricting the Number of Instances | p. 210 |
More About Building Patterns | p. 211 |
Patterns and Variables | p. 212 |
Patterns and Loops | p. 212 |
Another Example: Counting | p. 213 |
Pattern Precedence | p. 214 |
Going Deeper | p. 215 |
More Uses of Patterns | p. 215 |
Pattern Delimiters and Escapes | p. 215 |
Summary | p. 216 |
QandA | p. 217 |
Workshop | p. 217 |
Quiz | p. 217 |
Exercises | p. 218 |
Answers | p. 218 |
Quiz Answers | p. 218 |
Exercise Answers | p. 219 |
Doing More with Regular Expressions | p. 221 |
Extracting Matches | p. 222 |
Using Parentheses for Backreferences | p. 222 |
Saved Match Variables | p. 224 |
Matches and Context | p. 224 |
A Note About Greed | p. 225 |
Using Patterns for Search and Replace | p. 227 |
More About split | p. 228 |
Matching Patterns over Multiple Lines | p. 229 |
Storing Multiple Lines of Input | p. 230 |
Handling Input with Newlines | p. 230 |
A Summary of Options and Escapes | p. 232 |
An Example: Image Extractor | p. 233 |
Hints for Building Regular Expressions | p. 237 |
Going Deeper | p. 238 |
More Metacharacters | p. 239 |
Special Variables | p. 239 |
Options | p. 240 |
Summary | p. 241 |
QandA | p. 241 |
Workshop | p. 242 |
Quiz | p. 242 |
Exercises | p. 243 |
Answers | p. 243 |
Quiz Answers | p. 243 |
Exercise Answers | p. 244 |
Creating and Using Subroutines | p. 247 |
Subroutines Versus Functions | p. 248 |
Defining and Calling Basic Subroutines | p. 248 |
An Example of a Subroutine | p. 249 |
Defining Subroutines | p. 249 |
Calling Subroutines | p. 250 |
An Example: Son of Stats | p. 251 |
Returning Values from Subroutines | p. 253 |
Using Local Variables in Subroutines | p. 254 |
Passing Values into Subroutines | p. 257 |
Passing Arguments | p. 257 |
Handling Arguments Inside Subroutines | p. 257 |
A Note on Arguments Passed by Reference | p. 259 |
Subroutines and Context | p. 259 |
Another Example: Stats with a Menu | p. 260 |
Going Deeper | p. 267 |
Leaving Off the Parentheses for Arguments | p. 268 |
Using @_ to Pass Arguments to Subroutines | p. 268 |
Anonymous Subroutines | p. 269 |
Using Subroutine Prototypes | p. 269 |
The caller Function | p. 270 |
Summary | p. 270 |
QandA | p. 271 |
Workshop | p. 272 |
Quiz | p. 272 |
Exercises | p. 272 |
Answers | p. 273 |
Quiz Answers | p. 273 |
Exercise Answers | p. 275 |
Debugging Perl | p. 279 |
Using the Debugger: A Simple Example | p. 280 |
Starting and Running the Debugger | p. 285 |
Tracing Execution | p. 286 |
Stepping Through the Script | p. 287 |
Listing the Source | p. 287 |
Printing Variables | p. 289 |
Setting Breakpoints | p. 290 |
Other Commands | p. 290 |
One Other Thing | p. 291 |
Going Deeper | p. 291 |
Using Different Debuggers | p. 291 |
Running Perl Interactively | p. 291 |
Common Pitfalls and FAQs | p. 292 |
Summary | p. 292 |
QandA | p. 292 |
Workshop | p. 293 |
Quiz | p. 293 |
Exercises | p. 293 |
Answers | p. 294 |
Quiz Answers | p. 294 |
Exercise Answers | p. 295 |
Scope, Modules, and Importing Code | p. 297 |
Global Variables and Packages | p. 298 |
The Problem with Globals | p. 298 |
What's a Package? | p. 299 |
How Packages and Variables Work | p. 299 |
Using Non-Package Global Variables | p. 300 |
Local Scope and Variables | p. 302 |
Local Variables and Local Scope | p. 302 |
Local Variables with my and local | p. 303 |
Using Perl Modules | p. 304 |
Some Terminology | p. 304 |
Getting Modules | p. 305 |
Importing Modules | p. 306 |
Using Modules | p. 308 |
Importing Symbols by Hand | p. 309 |
Import Tags | p. 310 |
Using Pragmas | p. 311 |
The English Module | p. 313 |
An Example: Using the Text::Wrap Module | p. 313 |
Using Modules from CPAN (The Comprehensive Perl Archive Network) | p. 315 |
A Note of Caution | p. 315 |
Acquiring Modules from CPAN | p. 316 |
Installing CPAN Modules on Windows Using PPM | p. 317 |
Using Modules from CPAN | p. 317 |
Going Deeper | p. 318 |
Typeglobs | p. 318 |
One Other Difference Between local and my | p. 319 |
An Example of local Versus my | p. 319 |
Package Initialization and Finalization with Begin and End | p. 321 |
Importing Code with require | p. 321 |
Summary | p. 322 |
QandA | p. 323 |
Workshop | p. 325 |
Quiz | p. 325 |
Exercises | p. 325 |
Answers | p. 326 |
Quiz Answers | p. 326 |
Exercise Answers | p. 327 |
Exploring a Few Longer Examples | p. 329 |
A Searchable Address Book (address.pl) | p. 330 |
How It Works | p. 330 |
The Address File | p. 331 |
Inside the Script | p. 332 |
The Code | p. 338 |
A Web Log Processor (weblog.pl) | p. 340 |
How It Works | p. 341 |
What a Web Log Looks Like | p. 342 |
Building the Script | p. 343 |
The Code | p. 351 |
Summary | p. 354 |
Advanced Perl | p. 357 |
Working with Files and I/O | p. 359 |
Input and Output with File Handles | p. 360 |
Creating File Handles with open | p. 360 |
The die Function | p. 362 |
Reading Input from a File Handle | p. 363 |
Writing Output to a File Handle | p. 364 |
Reading and Writing Binary Files | p. 365 |
Closing a File Handle | p. 365 |
An Example: Extract Subjects and Save Them | p. 366 |
File Tests | p. 367 |
Working with @ARGV and Script Arguments | p. 369 |
Anatomy of the @ARGV | p. 369 |
Script Switches and Fun with Getopt | p. 369 |
getopts | p. 370 |
Script Switches on the Macintosh | p. 373 |
Another Example | p. 374 |
Going Deeper | p. 375 |
More About open and File Handles | p. 375 |
Various Other File-Related Functions | p. 376 |
Expert-Level I/O | p. 376 |
DBM Files | p. 377 |
Timestamps | p. 378 |
Summary | p. 378 |
QandA | p. 379 |
Workshop | p. 380 |
Quiz | p. 380 |
Exercises | p. 381 |
Answers | p. 381 |
Quiz Answers | p. 381 |
Exercise Answers | p. 383 |
Using Perl for CGI Scripting | p. 387 |
Before You Start | p. 388 |
How CGI Works | p. 389 |
Building a CGI Script, From Form to Response | p. 390 |
The Form | p. 390 |
Creating the Script | p. 391 |
Testing the Script | p. 393 |
Developing CGI Scripts with CGI.pm | p. 395 |
Getting CGI.pm | p. 395 |
Using CGI.pm | p. 395 |
Processing Form Input | p. 396 |
Generating HTML | p. 397 |
Debugging the Result | p. 399 |
An Example: Survey | p. 400 |
The Form | p. 401 |
The Script | p. 402 |
Going Deeper | p. 406 |
Using CGI Variables | p. 406 |
Post Versus Get | p. 407 |
Redirection | p. 407 |
Cookies and File Upload | p. 408 |
CGI Scripts and Security | p. 408 |
Embedding Perl in Web Servers | p. 408 |
Summary | p. 409 |
QandA | p. 410 |
Workshop | p. 411 |
Quiz | p. 411 |
Exercises | p. 411 |
Answers | p. 412 |
Quiz Answers | p. 412 |
Exercise Answers | p. 413 |
Managing Files and Directories | p. 417 |
Managing Files | p. 417 |
Renaming Files | p. 418 |
Creating and Following Links | p. 418 |
Removing Files and Links | p. 419 |
Other Operations | p. 419 |
Managing and Navigating Directories | p. 420 |
Navigating Directories | p. 420 |
Listing Files | p. 421 |
Making and Removing Directories | p. 423 |
An Example: Creating Links | p. 424 |
Going Deeper | p. 426 |
Summary | p. 427 |
QandA | p. 427 |
Workshop | p. 428 |
Quiz | p. 428 |
Exercises | p. 428 |
Answers | p. 429 |
Quiz Answers | p. 429 |
Exercise Answers | p. 430 |
Perl and the Operating System | p. 435 |
UNIX Features in Perl | p. 436 |
Environment Variables | p. 436 |
Running UNIX Programs with system | p. 437 |
Input with Backquotes | p. 438 |
Using Processes: fork, wait, and exec | p. 439 |
Other UNIX-Related Functions | p. 446 |
Perl for Windows | p. 447 |
Compatibility with UNIX | p. 448 |
Built-In Win32 Subroutines | p. 448 |
Win32::MsgBox | p. 449 |
Win32 Processes | p. 451 |
Working with the Win32 Registry | p. 453 |
Other Win32 Modules | p. 455 |
MacPerl Features | p. 456 |
Compatibility with UNIX | p. 456 |
Dialogs | p. 457 |
Other MacPerl Features | p. 459 |
Going Deeper | p. 460 |
Pipes | p. 460 |
Signals | p. 460 |
Basic Networking | p. 460 |
Creating User Interfaces with Perl | p. 461 |
Summary | p. 461 |
QandA | p. 461 |
Workshop | p. 463 |
Quiz | p. 463 |
Exercises | p. 463 |
Answers | p. 464 |
Quiz Answers | p. 464 |
Exercise Answers | p. 464 |
Working with References | p. 467 |
What Is a Reference? | p. 468 |
The Basics: A General Overview of How to Use References | p. 468 |
Creating a Reference | p. 469 |
Printing and Using References | p. 470 |
Dereferencing References | p. 471 |
Changing Referenced-To Data | p. 472 |
Using References with Subroutine Arguments and Return Values | p. 473 |
Subroutine Arguments | p. 473 |
Passing References Back from Subroutines | p. 475 |
Other Ways of Using References | p. 476 |
Dereferencing List Reference Elements | p. 476 |
References with Blocks | p. 477 |
The ref Function | p. 478 |
A Note About Memory and Garbage Collection | p. 479 |
Creating Nested Data Structures with References | p. 480 |
What Is a Nested Data Structure? | p. 480 |
Using Anonymous Data | p. 481 |
Creating Data Structures with Anonymous Data | p. 483 |
Other Structures | p. 486 |
Building Data Structures with Existing Data | p. 486 |
Accessing Elements in Nested Data Structures | p. 488 |
Another Example: A Database of Artists and Their Works | p. 490 |
Going Deeper | p. 494 |
Shorthand References to Scalars | p. 494 |
Symbolic References | p. 495 |
References to Typeglobs and Filehandles | p. 495 |
References to Subroutines | p. 496 |
Summary | p. 496 |
QandA | p. 497 |
Workshop | p. 498 |
Quiz | p. 498 |
Exercises | p. 499 |
Answers | p. 500 |
Quiz Answers | p. 500 |
Exercise Answers | p. 502 |
Odds and Ends | p. 505 |
Perl One-Liners | p. 506 |
Object-Oriented Programming | p. 508 |
Getting Started and Learning More | p. 508 |
The Basics (for Those Who Already Know OOP) | p. 509 |
An Example: Using Object-Oriented Modules | p. 516 |
Formats | p. 518 |
Sockets | p. 521 |
POD (Plain Old Documentation) Files | p. 522 |
Creating POD Files | p. 523 |
Embedding POD in Scripts | p. 524 |
Evaluating Code On-the-Fly | p. 525 |
Creating International Perl Scripts | p. 525 |
Script Security with Taint Checking | p. 526 |
PerlScript | p. 527 |
Perl Extensions | p. 527 |
New and Advanced Features in Perl 5.005 | p. 528 |
Going Deeper | p. 529 |
Summary | p. 529 |
QandA | p. 530 |
Workshop | p. 531 |
Quiz | p. 532 |
Exercises | p. 532 |
Answers | p. 533 |
Quiz Answers | p. 533 |
Exercise Answers | p. 534 |
Exploring a Few Longer Examples | p. 539 |
A Home Page Generator (myhomepage.pl) | p. 540 |
How It Works | p. 540 |
Inside the Script | p. 542 |
Another Configuration | p. 547 |
A Web-Based To Do List Manager (todolist.pl) | p. 550 |
The Data File | p. 551 |
How the Script Works | p. 552 |
The Code | p. 556 |
Summary | p. 564 |
Appendixes | p. 565 |
Perl Functions | p. 567 |
For More Information | p. 567 |
Perl Functions, in Alphabetical Order | p. 568 |
abs | p. 568 |
accept | p. 568 |
alarm | p. 568 |
atan2 | p. 569 |
bind | p. 569 |
binmode | p. 569 |
bless | p. 569 |
caller | p. 569 |
chdir | p. 570 |
chmod | p. 570 |
chomp | p. 570 |
chop | p. 570 |
chown | p. 571 |
chr | p. 571 |
chroot | p. 571 |
close | p. 571 |
closedir | p. 572 |
connect | p. 572 |
cos | p. 572 |
crypt | p. 572 |
dbmclose | p. 572 |
dbmopen | p. 572 |
defined | p. 573 |
delete | p. 573 |
die | p. 573 |
do | p. 573 |
dump | p. 574 |
each | p. 574 |
eof | p. 574 |
eval | p. 575 |
exec | p. 575 |
exists | p. 575 |
exit | p. 576 |
exp | p. 576 |
fcntl | p. 576 |
fileno | p. 576 |
flock | p. 576 |
fork | p. 576 |
format | p. 577 |
formline | p. 577 |
getc | p. 577 |
getlogin | p. 577 |
getpeername | p. 577 |
getpgrp | p. 577 |
getppid | p. 577 |
getpriority | p. 578 |
getsockname | p. 578 |
getsockopt | p. 578 |
glob | p. 578 |
gmtime | p. 578 |
goto | p. 578 |
grep | p. 579 |
hex | p. 579 |
import | p. 579 |
index | p. 579 |
int | p. 580 |
ioctl | p. 580 |
join | p. 580 |
keys | p. 580 |
kill | p. 581 |
last | p. 581 |
lc | p. 581 |
lcfirst | p. 581 |
length | p. 581 |
link | p. 581 |
listen | p. 582 |
local | p. 582 |
localtime | p. 582 |
log | p. 582 |
lstat | p. 582 |
map | p. 582 |
mkdir | p. 583 |
msgctl | p. 583 |
msgget | p. 583 |
msgrcv | p. 583 |
msgsnd | p. 584 |
my | p. 584 |
next | p. 584 |
no | p. 584 |
oct | p. 584 |
open | p. 584 |
opendir | p. 585 |
ord | p. 585 |
pack | p. 585 |
package | p. 586 |
pipe | p. 587 |
pop | p. 587 |
pos | p. 587 |
print | p. 587 |
printf | p. 587 |
push | p. 588 |
quotemeta | p. 588 |
rand | p. 588 |
read | p. 588 |
readdir | p. 589 |
readlink | p. 589 |
recv | p. 589 |
redo | p. 589 |
ref | p. 589 |
rename | p. 590 |
require | p. 590 |
reset | p. 590 |
return | p. 590 |
reverse | p. 590 |
rewinddir | p. 591 |
rmdir | p. 591 |
scalar | p. 591 |
seek | p. 591 |
seekdir | p. 591 |
select | p. 591 |
semctl | p. 592 |
semget | p. 592 |
semop | p. 592 |
send | p. 592 |
setpgrp | p. 592 |
setpriority | p. 592 |
setsockopt | p. 593 |
shift | p. 593 |
shmctl | p. 593 |
shmget | p. 593 |
shmread | p. 593 |
shmwrite | p. 593 |
shutdown | p. 593 |
sin | p. 594 |
sleep | p. 594 |
socket | p. 594 |
socketpair | p. 594 |
sort | p. 594 |
splice | p. 595 |
split | p. 596 |
sprintf | p. 597 |
sqrt | p. 597 |
srand | p. 597 |
stat | p. 598 |
study | p. 598 |
substr | p. 598 |
symlink | p. 599 |
syscall | p. 599 |
sysopen | p. 599 |
sysread | p. 599 |
sysseek | p. 599 |
system | p. 600 |
syswrite | p. 600 |
tell | p. 600 |
telldir | p. 600 |
tie | p. 600 |
tied | p. 600 |
time | p. 600 |
times | p. 601 |
truncate | p. 601 |
uc | p. 601 |
ucfirst | p. 601 |
umask | p. 601 |
undef | p. 601 |
unlink | p. 602 |
unpack | p. 602 |
unshift | p. 602 |
utime | p. 602 |
values | p. 602 |
vec | p. 602 |
wait | p. 603 |
waitpid | p. 603 |
wantarray | p. 603 |
warn | p. 603 |
write | p. 603 |
A Survey of Perl Modules | p. 605 |
Pragmas | p. 606 |
constant | p. 606 |
diagnostics | p. 606 |
integer | p. 606 |
lib | p. 606 |
overload | p. 606 |
sigtrap | p. 607 |
strict | p. 607 |
subs | p. 607 |
vars | p. 607 |
Basic Perl Modules | p. 607 |
Autoloader | p. 607 |
B | p. 607 |
Carp | p. 607 |
Config | p. 608 |
English | p. 608 |
Exporter | p. 608 |
Opcode | p. 608 |
PodParser | p. 608 |
Symbol | p. 608 |
Tie Modules | p. 608 |
Development Support Modules | p. 609 |
Benchmark | p. 609 |
Devel::DProf | p. 609 |
ExtUtils | p. 609 |
Usage | p. 609 |
Operating System Interfaces | p. 609 |
AppleII | p. 609 |
BSD::Resource | p. 609 |
BSD::Time | p. 610 |
Env | p. 610 |
Fcntl | p. 610 |
Mac Modules | p. 610 |
OS2 | p. 610 |
POSIX | p. 610 |
Networking Modules | p. 610 |
IPC::Signal | p. 610 |
Net::Bind | p. 610 |
Net::Cmd | p. 611 |
Net::Country | p. 611 |
Net::DNS | p. 611 |
Net::Domain | p. 611 |
Net::FTP | p. 611 |
Net::Gen | p. 611 |
Net::Ident | p. 611 |
Net::Inet | p. 611 |
Net::Netrc | p. 611 |
Net::NIS, Net::NISPlus | p. 611 |
Net::NNTP | p. 612 |
Net::Ping | p. 612 |
Net::POP3 | p. 612 |
Net::SMTP | p. 612 |
Net::SNPP | p. 612 |
Net::SSLeay | p. 612 |
Net::TCP | p. 612 |
Net::Telnet | p. 612 |
Net::Time | p. 612 |
Net::UDP | p. 613 |
SNMP | p. 613 |
Socket | p. 613 |
Data Type Utilities | p. 613 |
Date::DateCalc | p. 613 |
Date::Format | p. 613 |
Date::Language | p. 613 |
Date::Manip | p. 613 |
Date::Parse | p. 613 |
Math::BigFloat, Math::BigInt | p. 614 |
Math::Complex | p. 614 |
Math::Fraction | p. 614 |
Math::Matrix | p. 614 |
Math::PRSG | p. 614 |
Math::Trig | p. 614 |
Math::TrulyRandom | p. 614 |
Ref | p. 614 |
Sort::Versions | p. 614 |
Statistics::Descriptive | p. 614 |
Time-Modules | p. 615 |
TimeDate Bundle | p. 615 |
Database-Related Modules | p. 615 |
AnyDBM_File | p. 615 |
DBD | p. 615 |
DBI | p. 615 |
DB_File | p. 615 |
Msql | p. 616 |
Oraperl | p. 616 |
Pg | p. 616 |
SDBM_File | p. 616 |
Sybperl | p. 616 |
User Interfaces | p. 616 |
Curses | p. 616 |
Qt | p. 616 |
Term::AnsiColor | p. 616 |
Term::Gnuplot | p. 616 |
Tk | p. 617 |
X11::FVWM | p. 617 |
X11::Protocol | p. 617 |
File System Modules | p. 617 |
Cwd | p. 617 |
File::Df | p. 617 |
File::Flock | p. 617 |
File::Copy | p. 617 |
File::Lock | p. 617 |
File::Lockf | p. 618 |
File::Recurse | p. 618 |
File::Tools | p. 618 |
String Processing Modules | p. 618 |
Option/Argument Processing | p. 618 |
Getopt::Long | p. 618 |
Getopt::Mixed | p. 618 |
Getopt::Std | p. 618 |
IniConf | p. 618 |
Internationalization and Localization | p. 619 |
I18N::Collate | p. 619 |
Locale::Codes | p. 619 |
Unicode | p. 619 |
Cryptography, Authentication, and Security | p. 619 |
Authen::Radius | p. 619 |
Crypt::Des | p. 619 |
Crypt::Idea | p. 619 |
MD5 | p. 619 |
PGP | p. 619 |
HTML, HTTP, WWW, and CGI-Related Modules | p. 620 |
Apache | p. 620 |
CGI | p. 620 |
libwww | p. 620 |
Archiving and Compression | p. 620 |
Compress | p. 620 |
Convert::BinHex | p. 620 |
Convert::UU | p. 620 |
Image/Bitmap Manipulation | p. 621 |
GD | p. 621 |
Image::Size | p. 621 |
Image::Magick | p. 621 |
Mail and Usenet | p. 621 |
Mail::POP3Client | p. 621 |
News::Newsrc | p. 621 |
Flow Control Utilities | p. 621 |
AtExit | p. 621 |
Religion | p. 622 |
Filehandles and Input/Output | p. 622 |
DirHandle | p. 622 |
FileCache | p. 622 |
FileHandle | p. 622 |
IO | p. 622 |
Windows Modules | p. 622 |
libwin32 | p. 622 |
Other Modules | p. 623 |
Archie | p. 623 |
Business::CreditCard | p. 623 |
CPAN | p. 623 |
Installing Perl on a UNIX System | p. 625 |
Do You Need to Install Perl? | p. 625 |
Obtaining Perl | p. 626 |
Getting Binaries | p. 626 |
Getting Source (and Related Tools) | p. 627 |
Extracting and Compiling Perl | p. 628 |
Running the Configure Program | p. 628 |
Run make | p. 632 |
For More Information | p. 633 |
Installing Perl for Windows | p. 635 |
Downloading Perl for Windows | p. 636 |
Installing Perl for Windows | p. 637 |
Running Perl for Windows | p. 638 |
Downloading the Perl Source Code | p. 639 |
Getting More Information | p. 639 |
Installing Perl for the Macintosh | p. 641 |
Downloading MacPerl | p. 642 |
Installing MacPerl | p. 643 |
Starting the MacPerl Application | p. 644 |
Running MacPerl from Inside MPW | p. 644 |
Getting More Information | p. 644 |
Index | p. 647 |
Table of Contents provided by Syndetics. All Rights Reserved. |