Perl in a Nutshell: A Desktop Quick Reference

This complete guide to the Perl programming language ranges widely through the Perl programmer's universe, gathering together in a convenient form a wealth of information about Perl itself and its application to CGI scripts, XML processing, network programming, database interaction, and graphical user interfaces. The book is an ideal reference for experienced Perl programmers and beginners alike.With more than a million dedicated programmers, Perl is proving to be the best language for the latest trends in computing and business, including network programming and the ability to create and manage web sites. It's a language that every Unix system administrator and serious web developer needs to know. In the past few years, Perl has found its way into complex web applications of multinational banks, the U.S. Federal Reserve, and hundreds of large corporations.In this second edition, Perl in a Nutshell has been expanded to include coverage of Perl 5.8, with information on Unicode processing in Perl, new functions and modules that have been added to the core language, and up-to-date details on running Perl on the Win32 platform. The book also covers Perl modules for recent technologies such as XML and SOAP.Here are just some of the topics contained in this book:

  • Basic Perl reference
  • Quick reference to built-in functions and standard modules
  • CGI.pm and mod_perl
  • XML::* modules
  • DBI, the database-independent API for Perl
  • Sockets programming
  • LWP, the library for Web programming in Perl
  • Network programming with the Net modules
  • Perl/Tk, the Tk extension to Perl for graphical interfaces
  • Modules for interfacing with Win32 systems
As part of the successful "in a Nutshell" book series from O'Reilly & Associates, Perl in a Nutshell is for readers who want a single reference for all their needs."In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible."-- Larry Wall, creator of Perl
1140203049
Perl in a Nutshell: A Desktop Quick Reference

This complete guide to the Perl programming language ranges widely through the Perl programmer's universe, gathering together in a convenient form a wealth of information about Perl itself and its application to CGI scripts, XML processing, network programming, database interaction, and graphical user interfaces. The book is an ideal reference for experienced Perl programmers and beginners alike.With more than a million dedicated programmers, Perl is proving to be the best language for the latest trends in computing and business, including network programming and the ability to create and manage web sites. It's a language that every Unix system administrator and serious web developer needs to know. In the past few years, Perl has found its way into complex web applications of multinational banks, the U.S. Federal Reserve, and hundreds of large corporations.In this second edition, Perl in a Nutshell has been expanded to include coverage of Perl 5.8, with information on Unicode processing in Perl, new functions and modules that have been added to the core language, and up-to-date details on running Perl on the Win32 platform. The book also covers Perl modules for recent technologies such as XML and SOAP.Here are just some of the topics contained in this book:

  • Basic Perl reference
  • Quick reference to built-in functions and standard modules
  • CGI.pm and mod_perl
  • XML::* modules
  • DBI, the database-independent API for Perl
  • Sockets programming
  • LWP, the library for Web programming in Perl
  • Network programming with the Net modules
  • Perl/Tk, the Tk extension to Perl for graphical interfaces
  • Modules for interfacing with Win32 systems
As part of the successful "in a Nutshell" book series from O'Reilly & Associates, Perl in a Nutshell is for readers who want a single reference for all their needs."In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible."-- Larry Wall, creator of Perl
29.49 In Stock
Perl in a Nutshell: A Desktop Quick Reference

Perl in a Nutshell: A Desktop Quick Reference

Perl in a Nutshell: A Desktop Quick Reference

Perl in a Nutshell: A Desktop Quick Reference

eBook

$29.49  $38.99 Save 24% Current price is $29.49, Original price is $38.99. You Save 24%.

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

This complete guide to the Perl programming language ranges widely through the Perl programmer's universe, gathering together in a convenient form a wealth of information about Perl itself and its application to CGI scripts, XML processing, network programming, database interaction, and graphical user interfaces. The book is an ideal reference for experienced Perl programmers and beginners alike.With more than a million dedicated programmers, Perl is proving to be the best language for the latest trends in computing and business, including network programming and the ability to create and manage web sites. It's a language that every Unix system administrator and serious web developer needs to know. In the past few years, Perl has found its way into complex web applications of multinational banks, the U.S. Federal Reserve, and hundreds of large corporations.In this second edition, Perl in a Nutshell has been expanded to include coverage of Perl 5.8, with information on Unicode processing in Perl, new functions and modules that have been added to the core language, and up-to-date details on running Perl on the Win32 platform. The book also covers Perl modules for recent technologies such as XML and SOAP.Here are just some of the topics contained in this book:

  • Basic Perl reference
  • Quick reference to built-in functions and standard modules
  • CGI.pm and mod_perl
  • XML::* modules
  • DBI, the database-independent API for Perl
  • Sockets programming
  • LWP, the library for Web programming in Perl
  • Network programming with the Net modules
  • Perl/Tk, the Tk extension to Perl for graphical interfaces
  • Modules for interfacing with Win32 systems
As part of the successful "in a Nutshell" book series from O'Reilly & Associates, Perl in a Nutshell is for readers who want a single reference for all their needs."In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible."-- Larry Wall, creator of Perl

Product Details

ISBN-13: 9781449378820
Publisher: O'Reilly Media, Incorporated
Publication date: 06/03/2002
Series: In a Nutshell (O'Reilly)
Sold by: Barnes & Noble
Format: eBook
Pages: 762
File size: 4 MB

About the Author


Ellen Siever is a writer at O'Reilly & Associates, where she has also been a production editor and tools specialist. Before coming to O'Reilly, she was a programmer for many years in the Boston area. In addition to computers, her interests include her family, travel (especially if it's in the Southwest),. and photography.

Stephen Spainhour is a writer for O'Reilly & Associates. He has contributed to many O'Reilly tides. He is an avid fan of professional tennis (and terrible player), and when he's not checking for tennis scores on the web, he enjoys cooking, electronic music, and watching lots of television.

Nathan Patwardhan is a consultant with Collective Technologies where he works with Unix and programming languages like C and Perl. Nathan has been interested in Perl for several years, his most recent efforts being centered around Perl for Win32. In his free time, he enjoys Etch-A-Sketch and desserts by Swanson. You might occasionally find Nathan on EFNet's #perl or #helmet or checking in on one of the Usenet groups: comp.dang.perl.misc or comp.lang.perl.moderated.

Read an Excerpt


Chapter 2: Installing Perl The CPAN Architecture

CPAN represents the development interests of a cross-section of the Perl community. It contains Perl utilities, modules, documentation, and (of course) the Perl distribution itself CPAN was created by Jarkko Hietaniemi and Andreas Ming.

The home system for CPAN is funet.fi, but CPAN is also mirrored on many other sites around the globe. This ensures that anyone with an Internet connection can have reliable access to CPAN's contents at any time. Since the structure of all CPAN sites is the same, a user searching for the current version of, Perl. can be sure that the latest.tar.gz file is the same on every site.

The easiest way to access CPAN is to utilize the CPAN multiplex service at www.perl.com. The multiplexor tries to connect you to a local, fast machine on a large bandwidth hub. To use the multiplexor, go to http://www.perl.com/CPAN the multiplexor will, automatically route you to a site based on your domain.

If you prefer, you can choose a particular CPAN site, instead of letting the multiplexor choose one for you. To do that, go to the URL http://www.perl.com/CPAN (no wailing slash). When you omit the trailing slash, the CPAN multiplexor presents a menu of CPAN mirrors from which you select the one you want. It remembers your choice next time.

To get the current Perl distribution, click on latest.tar.gz. For ports to other systems, click on ports. The modules link is the one, you want if you're looking for a Perl module- from there you can get a full list of the modules, or you can access the modules directly by author, by CPAN category, or by module. (The section "Getting and Installing Modules" later in this chapter talks about installing modules. Click on doc for Perl documentation, FAQs, etc.

Installing Perl

Most likely your system administrator is responsible for installing and upgrading Perl. But if you are the system administrator, or you want to install Perl on your own system, sooner or later you will find yourself. installing a new version of Perl.

If you have been running Perl, and you are now going to install Perl 5.005, you need to be aware that it 'is not binary compatible with older versions. This means that you must rebuild and reinstall any dynamically loaded extensions that you built under earlier versions.

Specific installation instructions come in the README and 17VSTALL files of the Perl distribution kit. If. you don't already have the Perl distribution, you can download it from CPAN-the latest Unix distribution is in latest.tar.gz. The information in this section is an overview of the installation process. The gory details are in the INSTALL file, which you should look at before starting, especially if you haven't done an installation before. Note that operating systems other than Unix may have special instructions; if so, follow those instructions instead of what's in this section or in INSTALL Look for a file named READMExxx, where xxx is your OS name.

In addition to Perl itself, the standard distribution includes a set of core modules that are automatically installed with Perl. See the "Getting and Installing Modules" section later in this chapter for how to install modules that are not bundled with Perl; Chapter 8, Standard Modules, describes the standard modules in, some detail.

Installing on Unix

Typically, you'll get the Perl kit packed as either a tar file or as a set of shar (shell archive) scripts; in either case, the file will be in a compressed format. if you got your version of Perl directly from CPAN, it is probably in "tar-gzipped," format; tar and gzip are popular Unix data-archiving formats. In any case, once you've downloaded the distribution, you need to uncompress and unpack it. The filename indicates what kind of compression was used. A Z extension indicates you need to uncompress the file first, while a gz extension indicates you need to gunzip the file. You then unpack the file as appropriate, read the README and INSTALL files, and run a massive shell script called Configure, which tries to figure out everything about your system and creates the file Config.pm to store the information. After this is done, you do a series of "makes" to find header file dependencies, to compile Perl (and a2p, which translates awk scripts to Perl), to run regression tests, and to install Perl in your system directories.

One common problem is not making sure that Perl is linked against all the libraries it needs to build correctly. Also, you should say "yes" when Configure asks if you want dynamic loading, if your system supports it. Otherwise, you won't be able to install modules that use XS, which provides an interface between Perl and C.

If you are running Linux, some Linux distributions might not include a complete MakeMaker, which you need for installing modules. To be safe, you should make sure everything is there; one Way to do that is to check the Config.pm file. If MakeMaker is not correctly installed, you might need to build Perl yourself.

It's possible you'll get a compiled (binary) copy of Perl, rather than the source. in that case, make sure you get suidperl, a2p, s2p, and the Perl library routines. Install these files in the directories that your version was compiled for. Note that binary distributions of Perl are made available because they're handy, not because you are restricted from getting the source and compiling it yourself. The people who give you the binary distribution ought to provide you with some form of access to the source, if only a pointer to where they got the source. See the Copying file in the distribution for more information.

Perl examples

The Perl source distribution comes with some sample scripts in the eg/ subdirectory. Feel free to browse among them and use them. They are not installed automatically, however, so you need to copy them to the appropriate directory and possibly fix the #1 line to point to the right interpreter.

The files in the. t/ and lib/ subdirectories, although arcane in spots, can also serve as examples.

Patches

Since Perl is constantly being honed and improved, patches are sometimes made available through CPAN. Your distribution is likely to have had most of the patches applied already-run perl -v to check the patch level of your distribution. Patches are sent out with complete instructions on how to apply them using patch, which is available from the GNU project.

Installing on Win32

You need to obtain and install a copy of Perl yourself, unless you have had the good fortune of having a system administrator install Perl on your system.

For Perl 5.004, there are two different distributions for Win32 systems. The first is Perl for Win32, which was developed by ActiveState Tool Corporation. The second is actually the standard Perl distribution-Perl 5.004 added support for Win32 systems to the standard Perl distribution. In Perl 5.004, the two versions are largely compatible, with some of the Perl 5.004, code being based on the ActiveState port. However, there are also some differences: using either the ISAPI version of Perl or PerlScript with 5.004 requires the ActiveState distribution. On the other hand, the Win32 ports of mod_perl or Perl/Tk require the "native" (or standard) version of 5.004.

With Perl 5.005, this scenario has changed, and the two versions have been merged. if you look on CPAN, you'll see that there still seem to be two versions the ActiveState distribution, now known as ActivePerl, an& the standard distribution. The difference is that they are now based on the same source code. Get ActivePerl if you want to install from a binary distribution or get the standard distribution to build Perl from the source code.

ActivePerl

The canonical source for the ActivePerl distribution at the time of this writing is at http://www.activestate.com. Included in the distribution are:
  • Perl for Win32
  • Binary for the core Perl distribution
  • Perl for ISAPI
  • IIS plug-in for use with ISAPI-compliant web servers
  • PerlScript
  • ActiveX scripting engine
  • Perl Package Manager

Manager for Perl modules and extensions

The ActivePerl binary comes as a self-extracting executable that uses the standard Win32 InstallShield setup wizard to guide you through the installation process. By default, Perl is installed into the directory C:\perl\version, where version is the current version number (e.g., 5.005). Unless you choose to customize your setup, the default installation does not modify your registry other than to add an entry so you can uninstall Perl. For information on customizing your installation, see the Win32 FAQ on the ActiveState web site. The installation also associates the We extension .pl with Perl and adds the directory into which you installed Perl to your PATH environment variable.

Standard Perl distribution

The standard Perl distribution is available from, CPAN, where you'll find binary and source distributions for Perl 5.004 for both Windows NT and Windows 95, and the source distribution for Perl 5.005. You can get the binary for Perl 5.004 as either a .tar.gz file or a zip file. The source distributions come as targz files, which you can extract using a. utility that -supports gzip files, tar files, and long filenames. Ports of both GNU gzip and tar are available for the various Win32 platforms, or you can use a graphical zip archive program such as WinZip. Make sure you preserve the directory structure when you unpack the distribution. . . .

Table of Contents

Preface

PART 1: Getting Started

Chapter 1. Introduction to Perl
   What's Perl Good For?
   Perl Development
   Which Platforms Support Perl?
   Perl Resources

Chapter 2. Installing Perl
   The CPAN Architecture
   How Is CPAN Organized?
   Installing Perl
   Getting and Installing Modules
   Documentation

PART 2: Language Basics

Chapter 3. The Perl Interpreter
   Command Processing
   Command-Line Options
   Environment Variables
   The Perl Compiler
   Threads

Chapter 4. The Perl Language
   Program Structure
   Data Types and Variables
   Statements
   Special Variables
   Operators
   Regular Expressions
   Subroutines
   References and Complex Data Structures
   Filehandles
   Formats
   Pod

Chapter 5. Function Reference
   Perl Functions by Category
   Perl Functions in Alphabetical Order

Chapter 6. Debugging
   The Perl Debugger
   Debugger Commands
   Using the Debugger
   Customizing the Debugger
   The Perl Profiler
   The perlbug Program

PART 3: Modules

Chapter 7. Packages, Modules, and Objects
   Namespaces and Packages
   Modules
   Object-Oriented Perl
   Object Syntax

Chapter 8. Standard Modules
   AnyDBM_File
   attrs
   AutoLoader
   AutoSplit
   autouse
   B
   B::Asmdata
   B::Assembler
   B::Bblock
   B::Bytecode
   B::C
   B::CC
   B::Debug
   B::Deparse
   B::Disassembler
   B::Lint
   B::Showlex
   B::Stackobj
   B::Terse
   B::Xref
   base
   Benchmark
   blib
   Carp
   CGI
   CGI::Apache
   CGI::Carp
   CGI::Cookie
   CGI::Fast
   CGI::Push
   CGI::Switch
   Class::Struct
   Config
   constant
   CPAN
   CPAN::FirstTime
   CPAN::Nox
   Cwd
   Data::Dumper
   DB_File
   Devel::SelfStubber
   diagnostics
   DirHandle
   DynaLoader
   English
   Env
   Errno
   Exporter
   ExtUtils::Command
   ExtUtils::Embed
   ExtUtils::Install
   ExtUtils::Installed
   ExtUtils::Liblist
   ExtUtils::MakeMaker
   ExtUtils::Manifest
   ExtUtils::Miniperl
   ExtUtils::Mkbootstrap
   ExtUtils::Mksymlists
   ExtUtils::MM_OS2
   ExtUtils::MM_Unix
   ExtUtils::MM_VMS
   ExtUtils::MM_Win32
   ExtUtils::Packlist
   ExtUtils::testlib
   Fatal
   Fcntl
   fields
   File::Basename
   File::CheckTree
   File::Compare
   File::Copy
   File::DosGlob
   File::Find
   File::Path
   File::Spec
   File::Spec::Mac
   File::Spec::OS2
   File::Spec::Unix
   File::Spec::VMS
   File::Spec::Win32
   File::stat
   FileCache
   FileHandle
   FindBin
   GDBM_File
   Getopt::Long
   Getopt::Std
   I18N::Collate
   integer
   IO
   IO::File
   IO::Handle
   IO::Pipe
   IO::Seekable
   IO::Select
   IO::Socket
   IPC::Msg
   IPC::Open2
   IPC::Open3
   IPC::Semaphore
   IPC::SysV
   less
   lib
   locale
   Math::BigFloat
   Math::BigInt
   Math::Complex
   Math::Trig
   NDBM_File
   Net::hostent
   Net::netent
   Net::Ping
   Net::protoent
   Net::servent
   O
   ODBM_File
   Opcode
   ops
   overload
   Pod::Functions
   Pod::Html
   Pod::Text
   POSIX
   re
   Safe
   SDBM_File
   Search::Dict
   SelectSaver
   SelfLoader
   Shell
   sigtrap
   Socket
   strict
   subs
   Symbol
   Sys::Hostname
   Sys::Syslog
   Term::Cap
   Term::Complete
   Term::ReadLine
   Test
   Test::Harness
   Text::Abbrev
   Text::ParseWords
   Text::Soundex
   Text::Tabs
   Text::Wrap
   Thread
   Thread::Queue
   Thread::Semaphore
   Thread::Signal
   Thread::Specific
   Tie::Array, Tie::StdArray
   Tie::Handle
   Tie::Hash, Tie::StdHash
   Tie::RefHash
   Tie::Scalar, Tie::StdScalar
   Tie::SubstrHash
   Time::gmtime
   Time::Local
   Time::localtime
   Time::tm
   UNIVERSAL
   User::grent
   User::pwent
   vars
   vmsish

PART 4: CGI

Chapter 9. CGI Overview
   A Typical CGI Interaction
   URL Encoding
   Extra Path Information
   CGI Environment Variables

Chapter 10. The CGI.pm Module
   HTML Tag Generation
   Importing Method Groups
   Maintaining State
   Named Parameters
   Using JavaScript Features
   Debugging
   CGI.pm Reference

Chapter 11. Web Server Programming with mod_perl
   Design of mod_perl
   Installing mod_perl
   mod_perl Handlers
   Running CGI Scripts with mod_perl
   Server-Side Includes with mod_perl
    Sections
   Apache:: Modules

PART 5: Databases

Chapter 12. Databases and Perl
   DBM Databases and DBM Hashes
   Design of DBI
   DBI Methods
   DBI Environment Variables

PART 6: Network Programming

Chapter 13. Sockets
   Built-in Socket Functions
   The IO::Socket Module

Chapter 14. Email Connectivity
   The Net Modules
   The Mail Modules

Chapter 15. Usenet News
   The NNTP Protocol
   Net::NNTP
   The News::Newsrc Module

Chapter 16. FTP
   The FTP Protocol
   Net::FTP
   FTP Configuration with Net::Netrc

Chapter 17. The LWP Library
   LWP Overview
   The LWP Modules
   The HTTP Modules
   The HTML Module
   The URI Module

PART 7: Perl/Tk

Chapter 18. Perl/Tk
   Widgets
   Geometry Managers
   Common Widget Configuration Options
   The Button Widget
   The Checkbutton Widget
   The Radiobutton Widget
   The Label Widget
   The Entry Widget
   The Scrollbar Widget
   The Listbox Widget
   The Text Widget
   The Canvas Widget
   The Scale Widget
   The Menubutton Widget
   The Menu Widget
   The Optionmenu Widget
   The Frame Widget
   The Toplevel Widget

PART 8: Win32

Chapter 19. Win32 Modules and Extensions
   Win32::Clipboard
   Win32::Console
   Win32::ChangeNotification
   Win32::Eventlog
   Win32::File
   Win32::FileSecurity
   Win32::Internet
   Win32::IPC
   Win32::Mutex
   Win32::NetAdmin
   Win32::NetResource
   Win32::Process
   Win32::Registry
   Win32::Semaphore
   Win32::Service
   Win32::Shortcut
   Win32 Extensions
   OLE Automation

Chapter 20. PerlScript
   Client-Side PerlScript
   Server-Side PerlScript

Index

Symbols
Numbers
-0 option (perl), 33
\007 (octal value) sequence, 66
Symbols
@_ array, 70
& (ampersand)
   AND bitwise operator, 62
   calling subroutines, 70
   in encoded URLs, 325
   prototype symbol, 71
   && (logical AND) operator, 61
   &&= (assignment) operator, 60
   &= (assignment) operator, 60
<> (angle brackets), 76
   greater-than operator, 59
   < Perl debugger command, 150
   << Perl debugger command, 150
   <<= (assignment) operator, 60
   <= (less-than-or-equal) operator, 59
   <=> (comparison) operator, 59
   > Perl debugger command, 150
   <...> line-input operator, 75
   >> to open file for appending, 74
   >> Perl debugger command, 150
   >>= (assignment) operator, 60
   >= (greater-than-or-equal) operator, 59
* (asterisk)
   metacharacter, 65
   multiplication operator, 59
   prototype symbol (typeglob), 71
   ** (exponentiation) operator, 59
   **= (assignment) operator, 60
   *= (assignment) operator, 60
   *? regular expression quantifier, 68
@ (at sign)
   dereferencing with, 73
   format fieldholders, 76
   prototype symbol (list), 71
   signifying arrays, 46
\ (backslash)
   creating references, 72
   metacharacter, 65
   in prototype declarations, 72
   reference creation operator, 58
! (bang)
   CPAN.pm eval command, 20
   logical negation operator, 58
   .newsrc entries, 433
   Perl debugger command, 151
   !! Perl debugger command, 151
   != (not equal to) operator, 59
   !~ (pattern match) operator, 60
{} (braces)
   delimiting statement blocks, 48
   metacharacter, 65
   regular expression quantifiers, 68
   { Perl debugger command, 151
   {{ Perl debugger command, 151
[] (brackets)
   metacharacter, 65-66
   Perl debugger command, 152
^ (caret)
   in [...] construct, 67
   filled field fieldholder, 77
   grid geometry manager placeholder, 499
   metacharacter, 65
   regular expression anchor, 67
   XOR bitwise operator, 62
   ^= (assignment) operator, 60
: (colon)
   .newsrc entries, 433
   :: in package names, 160
, (comma)
   number legibility without, 44
   operator, 62
$ (dollar sign)
   dereferencing with, 73
   metacharacter, 65
   prototype symbol (scalar), 71
   regular expression anchor, 67
   signifying scalar variables, 46
$ variables
   $0 variable, 53
   $1, $2, $3, ..., 55, 68
   $& variable, 56
   $< variable, 53
   $> variable, 53
   $' variable, 56
   $@ variable, 52
   $\ variable, 52
   $` variable, 56
   $! variable, 52
   $[ variable, 53
   $] variable, 53
   $^ variable, 56
   $^A variable, 52
   $^D variable, 53
   $^E variable, 53
   $^F variable, 53
   $^H variable, 53
   $^I variable, 54
   $^L variable, 52
   $^M variable, 54
   $^O variable, 54
   $^P variable, 54
   $: variable, 52
   $, variable, 52
   $$ variable, 53
   $. variable, 51
   $= variable, 56
   $# variable, 52
   $- variable, 56
   $( variable, 53
   $) variable, 53
   $% variable, 56
   $+ variable, 56
   $? variable, 52
   $"; variable, 52
   $; variable, 52
   $/ variable, 51
   $~ variable, 56
   $_ ($ARG) variable, 51
   $| variable, 56
   $^T variable, 54
   $^W variable, 54
   $^X variable, 54
. (dot)
   concatenation operator, 63
   metacharacter, 65
   Perl debugger command, 150
   .. (range) operator, 62
   ... (range) operator, 62
   .= (assignment) operator, 60
= (equal sign)
   assignment operator, 45, 60
   for embedded documentation (pod), 43
   in hash name/value pairs, 46
   for pod commands, 78
   == (equal to) operator, 59
   => operator, defining key/value pairs, 46, 62
   =~ (pattern match) operator, 60
# (hash mark)
   for comments, 43
   format fieldholder, 76
   #! (shebang) line, 31
- (hyphen)
   in [...] construct, 66
   arithmetic negation operator, 58
   grid geometry manager placeholder, 498
   Perl debugger command, 150
   -> (arrow) operator, 58, 163
      dereferencing with, 74
   -= (assignment) operator, 60
   -- (autodecrement) operator, 60
-- option (perl), 33
<% %> delimiters, 612
() (parentheses)
   around function arguments, 85
   metacharacter, 66
   operator precedence and, 57
   (?...) extended regular expression syntax, 69
% (percent sign)
   dereferencing with, 73
   modulus operator, 59
   prototype symbol (hash), 71
   signifying variable type, 46
   %= (assignment) operator, 60
+ (plus)
   metacharacter, 65
   unary operator, 58
   += (assignment) operator, 60
   ++ (autoincrement) operator, 60
   +? regular expression quantifier, 68
? (question mark)
   metacharacter, 65
   ?: (conditional) operator, 62
   ?? regular expression quantifier, 68
   ?...? pattern match operator, 64
   ?...? Perl debugger command, 150
; (semicolon)
   ending Perl statements, 42
   in prototype declarations, 72
/ (slash)
   division operator, 59
   encoding in URLs, 325
   /= (assignment) operator, 60
   /.../ pattern match operator, 63
   /.../ Perl debugger command, 150
~ (tilde)
   bitwise negation operator, 58
   suppressing output whitespace, 77
   ~~ to print strings in fields, 77
_ (underscore)
   filehandle, 55
   improving number legibility, 44
| (vertical bar)
   format fieldholders, 76
   metacharacter, 66
   OR bitwise operator, 62
   Perl debugger command, 151
   |= (assignment) operator, 60
   || Perl debugger command, 151
   || (logical OR) operator, 61
   ||= (assignment) operator, 60

A
\A anchor (string beginning), 67
a command (CPAN.pm), 21
A command (Perl debugger), 143
a command (Perl debugger), 143
-A file test operator, 60
-a option (perl), 33
-a option (dprofpp), 154
-a option (perlbug), 155
\a (alarm) sequence, 66
abort() (Net::FTP), 443
abs()
   Perl built-in, 87
   URI::URL module, 486
-accelerator option (Menubutton), 536
accept()
   CGI.pm module, 335
   HTTP::Daemon module, 473
   IO::Socket module, 385-386
   Perl built-in, 87
   socket function, 380, 383
access.conf file, 357
account() (Net::Netrc), 450
account entries (.netrc), 449
$ACCUMULATOR ($^A) variable, 52
activate()
   Listbox widget, 515
activate
   Scrollbar widget, 513
active() (Net::NNTP), 428
active index
   Listbox widget, 514
   Menu widget, 538
Active Server Pages (ASP), 608, 612
active_times() (Net::NNTP), 428
-activebackground option (widgets), 502
-activeborderwidth option (Menu), 538
-activeforeground option (widgets), 502
ActivePerl distribution (see ActiveState Perl)
-activerelief option (Scrollbar), 512
ActiveState Perl, 13
   installing documentation, 26
   installing modules with, 19
add() (Mail::Send), 401
add_content() (HTTP::Message), 476
add_cookie_header() (HTTP::Cookies), 470
add_group() (News::Newsrc), 434
add_label() (Mail::Folder), 404
add_signature() (Mail::Internet), 412
AddConnection() (Win32::NetResource), 583
AddHeader()
   Response object, PerlScript, 616
   Win32::Internet module, 574
AddItems() (Menubutton), 537
address() (Mail::Address), 416
addresses (email), parsing, 414-417
addTag() (Canvas), 530
add()
   Mail::Send module, 400
   Menu widget, 539
administering network servers, 577-581
-after option (pack geometry manager), 497
agent() (LWP::UserAgent), 458
alarm(), 87
Alive() (Mail::POP3Client), 419-420
All() (Win32::OLE::Enum), 603
:all method group, 333
Alloc() (Win32::Console), 549
alternate quoting schemes, 44
ampersand (&)
   AND bitwise operator, 62
   calling subroutines, 70
   in encoded URLs, 325
   prototype symbol, 71
   && (logical AND) operator, 61
   &&= (assignment) operator, 60
   &= (assignment) operator, 60
anchor index
   Entry widget, 510
   Listbox widget, 514
anchor object (PerlScript), 610
-anchor option
   pack geometry manager, 497
   place geometry manager, 501
   widgets, 502
anchors in regular expressions, 67
AND (&) operator, bitwise, 62
AND (&&) operator, logical, 61
angle brackets <>
   format fieldholders, 76
   greater-than operator, 59
   < Perl debugger command, 150
   << Perl debugger command, 150
   <<= (assignment) operator, 60
   <= (less-than-or-equal) operator, 59
   <=> (comparison) operator, 59
   > Perl debugger command, 150
   <...> line-input operator, 75
   >> to open file for appending, 74
   >> Perl debugger command, 150
   >>= (assignment) operator, 60
   >= (greater-than-or-equal) operator, 59
anonymous data, referencing, 73
anonymous FTP, 11, 439
anonymous subroutines, 70
antique_client() (HTTP::Daemon::ClientConn), 474
AnyDBM_File module, 168
Apache modules, 359-361
   Apache::DumpHeaders module, 356
   Apache::Include module, 358
   Apache::Registry module, 357
Apache server, mod_perl with, 354-359
apop() (Net::POP3), 396
appe() (Net::FTP), 443
append_message() (Mail::Folder), 404
AppendToLog() (Response object, PerlScript), 616
append()
   CGI.pm module, 335
   Net::FTP module, 443
Application object (PerlScript), 613
$ARG ($_) variable, 51
arguments, passing to subroutines, 70
@ARGV array, 54
ARGV filehandle, 55, 75
-argv option (perlcc), 40
$ARGV variable, 54
arithmetic operators, 59
arrays, 43, 46
   functions for processing, 86
   special (predefined), 54
arrow (->) operator, 58, 163
   dereferencing with, 74
article() (Net::NNTP), 428
article command (NNTP), 425
articles, news (see Usenet news)
as_HTML() (HTML::Parser), 479
as_string()
   HTTP::Cookies module, 470
   HTTP::Request module, 462
   HTTP::Response module, 463
   LWP::RobotUA module, 454
   URI::URL module, 486
As() (Win32::OLE::Variant), 606
ascii() (Net::FTP module), 443
Ascii() (Win32::Internet), 571
ASP (Active Server Pages), 608, 612
aspect() (Frame widget), 541
assignment operators, 60
asterisk (*)
   metacharacter, 65
   multiplication operator, 59
   prototype symbol (typeglob), 71
   ** (exponentiation) operator, 59
   **= (assignment) operator, 60
   *= (assignment) operator, 60
   *? regular expression quantifier, 68
at sign (@)
   dereferencing with, 73
   format fieldholders, 76
   prototype symbol (list), 71
   signifying arrays, 46
atan2(), 88
attr() (HTML::Parser), 479
Attr() (Win32::Console), 549
attrs module, 168
auth_type() (CGI.pm), 335
AUTH_TYPE variable, 326
authentication, POP3, 395
authinfo() (Net::NNTP), 428
authorize() (Net::FTP), 443
autobundle command (CPAN.pm), 21
AutoCommit attribute (DBI), 368
autodecrement (--) operator, 60
autoEscape() (CGI.pm), 335
autoincrement (++) operator, 60
AutoLoader module, 169
automatic line-end processing, 33
automation server, 598
autosplit mode, 33
AutoSplit module, 169
autouse module, 170
available_drivers() (DBI), 370

B
\b anchor (word boundary), 67
\B anchor (not word boundary), 67
b command (CPAN.pm), 21
b command (Perl debugger), 144
-B file test operator, 60
-b file test operator, 60
B module, 170
-b option (perlbug), 156
B::Asmdata module, 171
B::Assembler module, 171
B::Bytecode module, 171
B::C module, 172
B::CC module, 173
B::Debug module, 174
B::Deparse module, 174
B::Disassembler module, 175
B::Lint module, 175
B::Showlex module, 176
B::Stackobj module, 176
B::Terse module, 176
B::Xref module, 176
B<> interior sequence (pod), 80
=back command (pod), 78
-background option (widgets), 502
backreferences, 68
backslash (\)
   creating references, 72
   metacharacter, 65
   in prototype declarations, 72
   reference creation operator, 58
   \1, \2, ... pattern match variables, 68
Backup() (Win32::EventLog), 558
bang (!)
   CPAN.pm eval command, 20
   logical negation operator, 58
   .newsrc entries, 433
   Perl debugger command, 151
   !! Perl debugger command, 151
   != (not equal to) operator, 59
   !~ (pattern match) operator, 60
Barber, Stan, 423
Barr, Graham, 390
base()
   HTTP::Response module, 463
   URI::URL module, 486
base module, 177
$BASETIME ($^T) variable, 54
bbox()
   Canvas widget, 531
   Listbox widget, 515
   Text widget, 518
bcc() (Mail::Send), 401
-bd option (widgets), 503
-before option (pack geometry manager), 497
=begin command (pod), 78
Benchmark module, 177
-bg option (widgets), 502
-bigincrement option (Scale), 534
binary() (Net::FTP), 443
Binary() (Win32::Internet), 571
binary Perl distributions, 13-14
BinaryRead() (Request object, PerlScript), 613
BinaryWrite() (Response object, PerlScript), 616
bind(), 88
   Canvas module, 531
   Socket module, 380, 382
bind_col() (DBI), 375
bind_columns() (DBI), 375
bind_param() (DBI), 370
binmode(), 88
-bitmap option (widgets), 502
bitwise operators, 62
bless(), 88
blib module, 180
block of statements, 48
body() (Net::NNTP), 428
Body()
   Mail::Internet module, 412
   Mail::POP3Client module, 418, 420
bookdb.dir, bookdb.pag files, 366
books, Perl-related, 9
-bordermode option (place geometry manager), 501
-borderwidth option (widgets), 503
braces {}
   delimiting statement blocks, 48
   metacharacter, 65
   regular expression quantifiers, 68
   { Perl debugger command, 151
   {{ Perl debugger command, 151
brackets []
   metacharacter, 65-66
   Perl debugger command, 152
Buffer property (Response object), 616
bugs in Perl, reporting, 155-156
   (see also debugging)
built-in functions, 85-141
   listed alphabetically, 87-141
   listed by category, 86-87
   socket-related, 380-384
built-in Perl variables, 51-56
button() (CGI.pm), 336
Button widget (Perl/Tk), 506
byte() (Net::FTP), 444
Bytecode backend (Perl compiler), 39
byteperl interpreter, 40

C
C, CC backends (Perl compiler), 39
c command (Perl debugger), 144
-c file test operator, 60
-C file test operator, 60
-c option (perl), 33
-c option (perlbug), 156
-C option (perlbug), 156
C preprocessor (cpp), 33
C<> interior sequence (pod), 80
-C option (perlcc), 40
CacheControl property (Response object), 616
callbacks, widget (Perl/Tk), 496
caller(), 89
Camel image, 9
cancel() (Mail::Send), 401
CancelConnection() (Win32::NetResource), 583
canon() (Mail::Address), 416
CanonicalizeURL() (Win32::Internet), 563
Canvas widget (Perl/Tk), 524-533
Capini, Aldo, 548
caret (^)
   in [...] construct, 67
   filled field fieldholder, 77
   grid geometry manager placeholder, 499
   metacharacter, 65
   regular expression anchor, 67
   XOR bitwise operator, 62
   ^= (assignment) operator, 60
Carp module, 180
cascade() (Menubutton), 538
cc() (Mail::Send), 402
Cd() (Win32::Internet), 571
cdup() (Net::FTP), 444
cget() (Perl/Tk), 495
:cgi, :cgi-lib method groups, 332
CGI modules, 181-185
   CGI::Apache module, 181
   CGI::Carp module, 181
   CGI::Cookie module, 182
   CGI::Fast module, 184
   CGI::Push module, 184
   CGI::Switch module, 185
CGI programs, 321-328
   debugging, 334
   environment variables for, 326-328
   example CGI interaction, 322-325
   extra path information, 326
   maintaining state, 333
   named parameters, 334
   running with mod_perl, 357-358
   URL encoding, 325-326
CGI.pm module, 321, 329-353
   debugging scripts, 334
   generating HTML tags, 332
   importing method groups, 332
   JavaScript features with, 334
   named parameters, 334
ChangeType() (Win32::OLE::Variant), 606
character classes, 66
Charset property (Response object), 616
chdir(), 89
checkbox() (CGI.pm), 336
checkbox_group() (CGI.pm), 336
checkbutton() (Menubutton), 537
Checkbutton widget (Perl/Tk), 506
$CHILD_ERROR ($?) variable, 52
chmod(), 89
chomp(), 90
ChopBlanks attribute (DBI), 369
chop(), 90
chown(), 90
chr(), 90
Christiansen, Tom, 8
chroot(), 90
class methods, 162
-class option
   Frame widget, 541
   toplevel widget, 541
classes, functions for, 87
Class::Struct module, 185
clean command (CPAN.pm), 21
clear() (HTTP::Cookies), 470
clear_label() (Mail::Folder), 404
Clear()
   Response object, PerlScript, 617
   Win32::EventLog module, 560
clear() (document object, PerlScript), 611
client() (Frame widget), 542
ClientCertificate collection, 613
client-side PerlScript, 608-612
client-side socket connections, 381, 385
clipboard, manipulating, 548
Clone() (Win32::OLE::Enum), 604
clone()
   HTTP::Headers module, 465
   HTTP::Message module, 476
   LWP::UserAgent module, 458
close(), 75, 91
   document object (PerlScript), 611
   Mail::Folder module, 404
   Mail::Mailer module, 400
   Mail::Send module, 402
   Win32::ChangeNotification module, 557
Close()
   Mail::POP3Client module, 419-420
   Win32::Internet module, 564
   Win32::Shortcut module, 592
closedir(), 91
-closeenough option (Canvas), 524
Cls() (Win32::Console), 550
code() (HTTP::Response), 464
collection objects, 602, 614
colon (:)
   .newsrc entries, 433
   :: in package names, 160
-colormap option
   Frame widget, 541
   toplevel widget, 541
colormapwindows() (Frame widget), 542
colors, widget, 496
-column option (grid manager), 499
-columnspan option (grid manager), 499
CombineURL() (Win32::Internet), 564
comma (,)
   number legibility without, 44
   operator, 62
command()
   Frame widget, 542
   Menubutton widget, 537
-command option, 496
   Button widget, 506
   Checkbutton widget, 507
   Menubutton widget, 536
   Optionmenu widget, 540
   Radiobutton widget, 508
   Scale widget, 534
   Scrollbar widget, 512
command processing on #! line, 32
command-line options (perl interpreter), 33-37
commands, Perl debugger, 143-152
comment() (Mail::Address), 416
comments, 43
commit() (DBI), 370
Common Gateway Interface (see CGI programs)
compare() (Text widget), 518
comparison operators, 59
CompatMode attribute (DBI), 369
compiler, Perl, 39
complex data structures, 72-74
concatenation (.) operator, 63
conditional (?:) operator, 62
conditional modifiers, 49
conditional statements, 48
Config module, 187
configure() (Perl/Tk), 494
-confine option (Canvas), 524
ConnectBackoff() (Win32::Internet), 564
ConnectRetries() (Win32::Internet), 564
ConnectTimeout() (Win32::Internet), 564
connect(), 91
   DBI module, 370
   Socket module, 380-381
Connect() (Mail::POP3Client), 420
console implementation, 549-557
constant module, 188
constant() (Win32::FileSecurity), 561
constants, global special (predefined), 55
constructors, 161
CONTENT_LENGTH variable, 326
content_ref() (HTTP::Message), 476
CONTENT_TYPE variable, 326
Content-type header, 324
ContentType property (Response object), 616
content()
   HTML::Parser module, 479
   HTTP::Message module, 476
context, 46
continue block, 49
ControlReceiveTimeout() (Win32::Internet), 564
ControlSendTimeout() (Win32::Internet), 565
cookie()
   CGI.pm module, 337
   LWP::UserAgent module, 458
Cookie header, 469
cookies, 182, 333
   HTTP::Cookies module, 469-472
   HTTP::Cookies::Netscape module, 472
   setting (PerlScript), 615
Cookies collection, 614
coords()
   Canvas widget, 531
   Scale widget, 535
core dumps, 33
cos(), 91
counting email messages, 417
Count()
   Mail::POP3Client module, 417, 420
   Win32::OLE::Enum module, 603
CPAN (Comprehensive Perl Archive Network), 10-12
   CPAN::FirstTime module, 189
   CPAN::Nox module, 190
   CPAN.pm module, 20-25, 188
   finding available modules, 16
cpp (C preprocessor), 33
crack() (URI::URL), 486
CrackURL() (Win32::Internet), 565
Create()
   Win32::Process module, 584
   Win32::Registry module, 588
createArc() (Canvas), 525
createBitmap() (Canvas), 525
createImage() (Canvas), 526
createLine() (Canvas), 526
createOval() (Canvas), 527
createPolygon() (Canvas), 528
createRectangle() (Canvas), 528
createText() (Canvas), 528
CreateURL() (Win32::Internet), 565
createWindow() (Canvas), 529
credentials() (LWP::UserAgent), 458
crypt(), 91
curly braces (see braces)
current_age() (HTTP::Response), 464
current_message() (Mail::Folder), 405
current index (Text widget), 517
curselection() (Listbox), 514
-cursor option (widgets), 503
Cursor() (Win32::Console), 550
CursorName attribute (DBI), 369
customizing Perl debugger, 153
=cut command (pod), 79
Cwd module, 190
cwd() (Net::FTP), 444

D
\D (nondigit) character class, 67
\d (digit) character class, 67
d command (CPAN.pm), 22
D command (Perl debugger), 145
d command (Perl debugger), 144
-d file test operator, 60
-d, -D options (perl), 33
-d option (perlbug), 156
daemon() (HTTP::Daemon::ClientConn), 475
dash (see hyphen)
data() (Net::SMTP), 393
DATA command (SMTP), 392
Data::Dumper module, 190
DATA filehandle, 55
data_sources() (DBI), 371
data types, 43-47
   complex data structures, 72-74
databases, 365-376
   database handles (DBI methods), 368-369
   DBDs (database drivers), 367
   DBI module, 366-376
   DBM (Database Management) facility, 365-366
dataend() (Net::SMTP), 393
DataReceiveTimeout() (Win32::Internet), 566
datasend() (Net::SMTP), 393
DataSendTimeout() (Win32::Internet), 566
date() (Net::NNTP), 429
date and time
   functions for, 87
   HTTP::Date module, 468
DB_File module, 194
DBDs (database drivers), 365, 367
DBI_ environment variables, 376
DBI module, 365-376
   database and statement handles, 368-369
   environment variables for, 376
   methods of, 370-376
DBM (Database Management) facility, 365-366
dbmclose(), 92
dbmopen(), 92, 365
debug_print() (Mail::Folder), 405
debugging, 142-156
   CGI scripts, 334
   checking syntax without running, 33
   core dumps, 33
   -d, -D options (perl), 33, 142, 154
   Perl debugger, 142-153
      commands for, 143-152
      customizing, 153
   Perl profiler (DProf), 154-155
   perlbug program, 155-156
$DEBUGGING ($^D) variable, 53
debug()
   Mail::Folder module, 405
   Text widget, 518
declarations, 43
   packages, 160
   private vs. local, 71
   subroutines, 70
   variables, 47
default_port() (URI::URL), 486
defaults() (CGI.pm), 338
defined(), 92
deiconify() (Frame widget), 542
del_group() (News::Newsrc), 434
delay() (LWP::RobotUA), 455
delete(), 93
   Canvas widget, 531
   CGI.pm module, 339
   Entry widget, 510
   HTML::Parser module, 480
   Listbox widget, 514
   Mail::Send module, 402
   Menu widget, 539
   Net::FTP module, 444
   Net::POP3 module, 396
   Text widget, 518
Delete()
   Mail::POP3Client module, 419-420
   Win32::Internet module, 571
delete_all() (CGI.pm), 339
delete_content() (HTML::Parser), 480
delete_label() (Mail::Folder), 405
delete_message() (Mail::Folder), 405
DeleteKey() (Win32::Registry), 589
DeleteValue() (Win32::Registry), 589
delta() (Scrollbar), 513
Deparse backend (Perl compiler), 39
dereferencing, 73, 163
deselect()
   Checkbutton widget, 507
   Radiobutton widget, 508
DESTROY method, 162
Devel::SelfStubber module, 195
diagnostics module, 196
diamond <...> operator, 75
die(), 75, 93
-digits option (Scale), 534
dir() (Net::FTP), 444
directories
   file-related functions, 86
   functions for, 86
DirHandle module, 197
-disabledforeground option (widgets), 503
disconnect() (DBI), 371
Display() (Win32::Console), 550
distributions() (Net::NNTP), 429
division (*) operator, 59
dlineinfo() (Text widget), 518
do statement, conditional modifiers with, 50
do(), 93, 371
document object (PerlScript), 610-612
DOCUMENT_ROOT variable, 326
documentation, Perl, 25-27, 77-84
   = to signify in programs, 43
   utilities for, 81-84
dollar sign ($), 65
   dereferencing with, 73
   prototype symbol (scalar), 71
   regular expression anchor, 67
   signifying scalar variables, 46
   special variables (see $ variables)
domain() (Net::SMTP), 394
Domain property (response cookies), 615
dot (.)
   concatenation operator, 63
   metacharacter, 65
   Perl debugger command, 150
   .. (range) operator, 62
   ... (range) operator, 62
   .= (assignment) operator, 60
double-quoted string literals, 44
Dowd, Sean, 390
downloading
   Perl language source code, 10-12
   Perl modules source code, 12, 15-25
dprofpp utility, 154
dump_results() (DBI), 372
dump(), 94
   CGI.pm module, 339
   HTML::Parser module, 480
dup() (Mail::Folder), 405
DynaLoader module, 198
dynamic scoping, 47, 71

E
-e file test operator, 60
-e option (perl), 33
-E option (dprofpp), 154
-e option (perlbug), 156
-e option (perlcc), 40
\e (escape) sequence, 66
E<> interior sequence (pod), 80
each(), 94
ebcdic() (Net::FTP), 444
$EFFECTIVE_GROUP_ID ($)) variable, 53
$EFFECTIVE_USER_ID ($>) variable, 53
$EGID ($() variable, 53
-elementborderwidth option (Scrollbar), 512
email, 390-422
   folders for (Mail::Folder module), 402-411
   handling messages (Mail::Internet module), 411-414
   header control (Mail::Send module), 400-402
   Mail modules, 390, 398-422
   parsing addresses (Mail::Address module), 414-417
   Perl-related mailing lists, 7
   reading (Mail::POP3Client module), 417-422
   retrieving (Net::POP3 module), 395-398
   sending (Mail::Mailer module), 398-400
   sending (Net::SMTP module), 391-395
embedding scripts in messages, 33
encoding URLs, 325-326
=end command (pod), 79
__END__ constant, 55
end index
   Entry widget, 510
   Listbox widget, 514
   Menu widget, 539
   Text widget, 517
endgrent(), 94
endhostent(), 94
endnetent(), 95
endprotoent(), 95
endpwent(), 95
endservent(), 95
endtag() (HTML::Parser), 480
End() (Response object, PerlScript), 617
English module, 200
Entry widget (Perl/Tk), 509-512
entrycget()
   Menu widget, 539
   Menubutton widget, 538
entryconfigure()
   Menu widget, 539
   Menubutton widget, 538
EnumerateRights() (Win32::FileSecurity), 561
%ENV hash, 54
Env module, 201
env_proxy() (LWP::UserAgent), 458
environment variables, 38-39
   CGI-related, 326-328
   DBI-related, 376
eof(), 95
   HTML::Parser module, 478
eparams() (URI::URL), 486
epath() (URI::URL), 487
eq (equal to) operator, 59
eq() (URI::URL), 487
equal sign (=)
   assignment operator, 45, 60
   for embedded documentation (pod), 43
   in hash name/value pairs, 46
   for pod commands, 78
   == (equal to) operator, 59
   => operator, defining key/value pairs, 46, 62
   =~ (pattern match) operator, 60
equality operators, 59
equery() (URI::URL), 487
err() (DBI), 372
Errno module, 201
$ERRNO ($!) variable, 52
error_as_HTML() (HTTP::Response), 464
Error() (Win32::Internet), 566
errstr() (DBI), 372
escape_from() (Mail::Internet), 413
escaped sequences, 66
$EUID ($>) variable, 53
$EVAL_ERROR ($@) variable, 52
eval(), 96
example Perl scripts, 13
exclamation point (see ! bang)
$EXECUTABLE_NAME ($^X) variable, 54
execute() (DBI), 368, 372
exec(), 96
exists(), 97
   News::Newsrc module, 434
exit(), 97, 358
expand() (Net::SMTP), 394
-expand option (pack geometry manager), 497
Expires property (response cookies), 615-616
ExpiresAbsolute property (Response object), 616
exponentiation (**) operator, 59
Exporter module, 201
-exportselection option (widgets), 503
exp(), 97
$EXTENDED_OS_ERROR ($^E) variable, 53
extended regular expression syntax, 69
extra path information, 326
extract_cookies() (HTTP::Cookies), 470
extract_links() (HTML::Parser), 480
extracting Perl source code, 12, 14
ExtUtils modules, 203-228
   ExtUtils::Command module, 203
   ExtUtils::Embed module, 204
   ExtUtils::Install module, 207
   ExtUtils::Installed module, 208
   ExtUtils::Liblist module, 210
   ExtUtils::MakeMaker module, 211
   ExtUtils::Manifest module, 217
   ExtUtils::Miniperl module, 219
   ExtUtils::Mkbootstrap module, 220
   ExtUtils::Mksymlists module, 220
   ExtUtils::MM_OS2 module, 221
   ExtUtils::MM_Unix module, 221
   ExtUtils::MM_VMS module, 224
   ExtUtils::MM_WIN32 module, 225
   ExtUtils::Packlist module, 227
   ExtUtils::testlib module, 228

F
@F array, 54
f command (Perl debugger), 145
-f file test operator, 60
-F option (dprofpp), 154
-f option (perlbug), 156
\f (formfeed) sequence, 66
F<> interior sequence (pod), 80
-F option (perl), 33
FAQs, Perl-related, 7
FastCGI, 184
Fatal module, 228
Fcntl module, 229
fcntl(), 97
fetch() (DBI), 373
fetchall_arrayref() (DBI), 373
fetchrow_array() (DBI), 373
fetchrow_arrayref() (DBI), 373
fetchrow_hashref() (DBI), 373
FetchURL() (Win32::Internet), 566
-fg option (widgets), 503
fieldholders, 76
fields module, 229
__FILE__ constant, 55
File modules, 229-239
   File::Basename module, 229
   File::CheckTree module, 230
   File::Compare module, 231
   File::Copy module, 231
   File::DosGlob module, 232
   File::Find module, 232
   File::Path module, 233
   File::Spec module, 234
   File::Spec::Mac module, 234
   File::Spec::Os2 module, 236
   File::Spec::Unix module, 236
   File::Spec::VMS module, 237
   File::Spec::Win32 module, 238
   File::Stat module, 239
file test operators, 60
FileCache module, 240
FileHandle module, 240
filehandles, 74-75
   functions for, 86
   special (predefined), 55
filenames, iterating scripts over, 33
fileno(), 98
files, functions for, 86
-fill option (pack geometry manager), 497
FillAttr() (Win32::Console), 550
FillChar() (Win32::Console), 550
filled field fieldholders, 77
find() (Canvas), 531
FindBin module, 242
finish() (DBI), 373
first_labeled_message() (Mail::Folder), 405
first_message() (Mail::Folder), 406
fixed-length data/records, functions for, 86
fixed-precision numeric fields, 76
flash()
   Button widget, 506
   Checkbutton widget, 507
   Radiobutton widget, 509
flock(), 98
flow control functions, 86
Flush()
   Response object, PerlScript, 617
   Win32::Console module, 550
focus() (Canvas), 532
focusmodel() (Frame widget), 542
foldername() (Mail::Folder), 406
folders for email messages, 402-411
-font option (widgets), 503
fonts, widget, 496
=for command (pod), 79
for loops, 49
force command (CPAN.pm), 22
foreach loops, 49
-foreground option (widgets), 503
fork(), 99
Form collection, 614
:form method group, 332
form object (PerlScript), 610
<form> tags (HTML), 323
format()
   HTML::FormatPS module, 483
   HTML::FormatText module, 484
   Mail::Address module, 416
$FORMAT_FORMFEED ($^L) variable, 52
format keyword, 75
$FORMAT_LINE_BREAK_CHARACTERS ($:) variable, 52
$FORMAT_LINES_LEFT ($-) variable, 56
$FORMAT_LINES_PER_PAGE ($=) variable, 56
$FORMAT_NAME ($~) variable, 56
$FORMAT_PAGE_NUMBER ($%) variable, 56
$FORMAT_TOP_NAME ($^) variable, 56
formats, 75-77
formline(), 99
fraction() (Scrollbar), 513
frag() (URI::URL), 487
frame() (Frame widget), 542
frame object (PerlScript), 610
Frame widget (Perl/Tk), 540
FrameMaker, translating pod to, 81
Free() (Win32::Console), 550
fresh_until() (HTTP::Response), 464
freshness_lifetime() (HTTP::Response), 464
from() (LWP::UserAgent), 459
-from option (Scale), 534
FTP (File Transfer Protocol), 439-450
   Net::FTP module, 441-449
   Net::Netrc module, 449-450
   obtaining Perl, 11
   Win32::Internet functions for, 571
FTP() (Win32::Internet), 567
full_path() (URI::URL), 487
func() (DBI), 372
functions, built-in, 85-141
   listed alphabetically, 87-141
   listed by category, 86-87
   socket-related, 380-384
functions, loading
   AutoLoader module, 169
   DynaLoader module, 198
   SelfLoader module, 291

G
\G anchor, 67
-g file test operator, 60
g pattern match modifier, 63
GATEWAY_INTERFACE variable, 326
GDBM_File module, 242
ge (greater-than-or-equal) operator, 59
-gen option (perlcc), 40
GenerateCtrlEvent() (Win32::Console), 551
geometry() (Frame widget), 542
geometry managers (Perl/Tk), 496-502
get()
   Entry widget, 510
   Listbox widget, 514
   Net::FTP module, 444
   Scale widget, 535
   Scrollbar widget, 513
   Text widget, 518
Get()
   Win32::FileSecurity module, 561
   Win32::Internet module, 572
get_basic_credentials() (LWP::UserAgent), 459
get_fields() (Mail::Folder), 406
get_header() (Mail::Folder), 406
get_message_file() (Mail::Folder), 406
get_message() (Mail::Folder), 406
GET method (CGI), 323, 461
get_mime_header() (Mail::Folder), 406
get_mime_message() (Mail::Folder), 407
get() (Net::POP3), 397
get_option() (Mail::Folder), 407
get_request() (HTTP::Daemon::ClientConn), 474
GetActiveObject() (Win32::OLE), 599
GetAttributes() (Win32::File), 560
getc(), 99
GetDomainController() (Win32::NetAdmin), 578
GetError() (Win32::NetResource), 583
GetEvents() (Win32::Console), 551
GetExitCode() (Win32::Process), 586
getgrent(), 99
getgrgid(), 100
getgrnam(), 100
gethostbyaddr(), 100
gethostbyname(), 101
gethostest(), 101
GetKeys() (Win32::Registry), 589
getlogin(), 101
getnetbyaddr(), 101
getnetbyname(), 101
getnetent(), 102
GetNumber() (Win32::EventLog), 560
GetObject() (Win32::OLE), 600
GetOldest() (Win32::EventLog), 560
Getopt::Long module, 242
Getopt::Std module, 245
getpeername(), 102
getpgrp(), 102
getppid(), 102
getprint() (LWP::Simple), 456
GetPriorityClass() (Win32::Process), 586
getpriority(), 102
getprotobyname(), 103, 381
getprotobynumber(), 103
getprotoent(), 103
getpwent(), 103
getpwnam(), 104
getpwuid(), 104
GetResponse() (Win32::Internet), 567
getservbyname(), 104
getservbyport(), 104
GetServices() (Win32::Service), 591
getservent(), 105
GetSharedResource() (Win32::NetResource), 582
getsockname(), 105
getsockopt(), 105
GetStatus() (Win32::Service), 591
GetStatusCallback() (Win32::Internet), 568
getstore() (LWP::Simple), 456
gettags() (Canvas), 532
GetUNCName() (Win32::NetResource), 583
GetValues() (Win32::Registry), 589
get()
   LWP::Simple module, 455
$GID ($() variable, 53
global special variables, 51
glob(), 105
gmtime(), 105
goto command, 50
goto(), 106
greater-than (>, gt) operators, 59
greater-than-or-equal (>=, ge) operators, 59
greedy matching, 68
grep(), 106
grid() (Frame widget), 542
grid geometry manager (Perl/Tk), 498-500
gridBBox() (grid manager), 500
gridColumnconfigure() (grid manager), 499
gridForget() (grid manager), 500
gridInfo() (grid manager), 500
gridLocation() (grid manager), 500
gridPropagate() (grid manager), 500
gridRowconfigure() (grid manager), 500
gridSize() (grid manager), 500
gridSlaves() (grid manager), 500
group command (NNTP), 425
group() (Frame widget), 542
group() (Net::NNTP), 429
groups
   fetching information, functions for, 87
groups() (News::Newsrc), 435
gt (greater-than) operator, 59
guestbook (CGI example), 322-325

H
h command (CPAN.pm), 22
H command (Perl debugger), 145
h command (Perl debugger), 145
-h option (perl), 33
-h option (perlbug), 156
hash mark (#)
   #! (shebang) line, 31
   for comments, 43
   format fieldholders, 76
hash prototype symbol (%), 72
hashes, 43, 46
   functions for processing, 86
   special (predefined), 54
head()
   LWP::Simple module, 455-456
   Mail::Internet module, 413
   Net::NNTP module, 429
Head() (Mail::POP3Client), 417, 420
=head1 command (pod), 79
=head2 command (pod), 79
HeadAndBody() (Mail::POP3Client), 418, 420
header()
   CGI.pm module, 330, 340
   HTTP::Headers module, 466
   HTTP::Message module, 476
headers, HTTP, 465-467
-height option
   place geometry manager, 501
   widgets, 503
hello() (Net::SMTP), 394
HELO command (SMTP), 392
help() (Net::SMTP), 394
hex(), 107
hidden() (CGI.pm), 341
Hietaniemi, Jarkko, 10
-highlightbackground option (widgets), 503
-highlightcolor option (widgets), 503
-highlightthickness option (widgets), 504
history object (PerlScript), 610
HOME variable, 38
host()
   Mail::Address module, 415-416
   URI::URL module, 487
Host() (Mail::POP3Client), 418, 421
host_wait() (LWP::RobotUA), 455
hostpath (IO::Socket::UNIX), 389
HTML (Hypertext Markup Language)
   tags, generating with CGI.pm, 332
   translating pod to, 83, 275
:html method groups, 333
HTML modules, 476-484
   HTML::Element module, 479-482
   HTML::FormatPS module, 483-484
   HTML::FormatText module, 484
   HTML::Parser module, 476-479
   HTML::TreeBuilder module, 482-483
HTTP() (Win32::Internet), 568
HTTP_ACCEPT variable, 326
HTTP_COOKIE variable, 326
HTTP_FROM variable, 326
HTTP (Hypertext Transfer Protocol)
   request messages, 452
   Win32::Internet functions for, 574
HTTP modules
   HTTP::Cookies module, 469-472
   HTTP::Cookies::Netscape module, 472
   HTTP::Daemon module, 472-475
   HTTP::Daemon::ClientConn module, 474-475
   HTTP::Date module, 468
   HTTP::Headers module, 465-467
   HTTP::Message module, 475-476
   HTTP::Request module, 452, 461-462
   HTTP::Response module, 453, 462-465
   HTTP::Status module, 467-468
HTTP_REFERER variable, 326
HTTP_USER_AGENT variable, 326
hyphen (-)
   in [...] construct, 66
   arithmetic negation operator, 58
   grid geometry manager placeholder, 498
   Perl debugger command, 150
   -> (arrow) operator, 58, 163
      dereferencing with, 74
   -= (assignment) operator, 60
   -- (autodecrement) operator, 60

I
i command (CPAN.pm), 22
-i option (perl), 33
-I option (dprofpp), 154
i pattern match modifier, 63, 69
I18N::Collate module, 246
I<> interior sequence (pod), 80
-I option (perl), 33
-I option (perlcc), 40
iconbitmap() (Frame widget), 542
iconify() (Frame widget), 542
iconmask() (Frame widget), 542
iconname() (Frame widget), 542
iconposition() (Frame widget), 542
iconwindow() (Frame widget), 542
icurso()r (Entry), 510
identify()
   Scale widget, 535
   Scrollbar widget, 513
if modifier, 49
if statement, 48
ignore_text() (HTML::Parser), 483
ignore_unknown() (HTML::Parser), 482
ihave() (Net::NNTP), 429
image_button() (CGI.pm), 341
-image option (widgets), 504
implicit() (HTML::Parser), 480
implicit_tags() (HTML::Parser), 482
import_names() (CGI.pm), 342
in() (Win32::OLE), 601
-in option
   grid geometry manager, 499
   pack geometry manager, 497
   place geometry manager, 501
InactiveDestroy attribute (DBI), 369
INADDR_ANY() (Socket), 383-384
INADDR_BROADCAST() (Socket), 384
INADDR_LOOPBACK() (Socket), 384
INADDR_NONE() (Socket), 384
@INC array, 54
%INC hash, 54
index(), 107
   Entry widget, 510
   Listbox widget, 515
   Menu widget, 539
   Text widget, 519
-indicatoron option
   Menubutton widget, 536-537
   Optionmenu widget, 540
   Radiobutton widget, 508
-indicatoron option (Checkbutton), 507
inet_aton() (Socket), 383
inet_ntoa() (Socket), 383
infix dereference (->) operator, 58, 74, 163
Info() (Win32::Console), 551
initializing NNTP clients, 427
initializing sockets, 381
$INPLACE_EDIT ($^I) variable, 54
input, functions for, 86
   (see also $_ variable; output), 51
$INPUT_LINE_NUMBER ($.) variable, 51
$INPUT_RECORD_SEPARATOR ($/) variable, 51
<input> tags (HTML), 323
Input() (Win32::Console), 552
InputChar() (Win32::Console), 552
InputCP() (Win32::Console), 552
insert()
   Entry widget, 511
   Listbox widget, 514
   Menu widget, 539
   Text widget, 519
insert_element() (HTML::Parser), 480
insert index
   E ntry widget, 510
   Text widget, 517
-insertbackground option (widgets), 504
-insertborderwidth option (widgets), 504
-insertofftime option (widgets), 504
-insertontime option (widgets), 504
-insertwidth option (widgets), 504
install command (CPAN.pm), 22
installing
   mod_perl module, 355
   Perl documentation, 26
   Perl modules, 17-25
   Perl source code, 12-15
instance methods, 162
instances of classes (see objects)
int(), 107
integer module, 246
interior sequences (pod), 80
Internet-domain sockets, 380
interpreter, Perl, 31-37
   command processing, 32-33
   command-line options, 33-37
interprocess communication
   functions for, 87
inverse_select() (Mail::Folder), 407
invoke()
   Button widget, 506
   Checkbutton widget, 507
   Menu widget, 539
   Radiobutton widget, 509
   Win32::OLE module, 601
IO modules, 246-253
   IO::File module, 247
   IO::Handle module, 247
   IO::Pipe module, 250
   IO::Seekable module, 251-252
   IO::Socket module, 253
ioctl(), 107
IO::Socket module, 385-389
   IO::Socket::INET subclass, 387-389
   IO::Socket::UNIX subclass, 389
-ipadx, -ipady options
   grid geometry manager, 499
   pack geometry manager, 497
IPC modules, 254-258
   IPC::Msg module, 254
   IPC::Open2 module, 255
   IPC::Open3 module, 256
   IPC::Semaphore module, 256
   IPC::SysV module, 258
is_client_error() (HTTP::Status, 467
is_empty() (HTML::Parser), 481
is_error()
   HTTP::Response module, 464
   HTTP::Status module, 467
   LWP::Simple module, 456
is_fresh() (HTTP::Response), 464
is_info()
   HTTP::Response module, 465
   HTTP::Status module, 467
is_inside() (HTML::Parser), 481
is_protocol_supported() (LWP::UserAgent), 459
is_readonly() (Mail::Folder), 407
is_redirect()
   HTTP::Response module, 465
   HTTP::Status module, 467
is_server_error() (HTTP::Status, 467
is_success()
   HTTP::Response module, 465
   HTTP::Status module, 467
   LWP::Simple module, 456
IsClientConnected property (Response object), 616
isindex() (CGI.pm), 342
Item() (Win32::OLE::Enum), 603
=item command (pod), 79
item tags (Canvas widgets), 530
itemcget() (Canvas), 531
itemconfigure() (Canvas), 531
iterating scripts over filenames, 33

J
JavaScript features with CGI.pm, 334
Johnson, Kevin, 390, 402
join(), 107
-jump option (Scrollbar), 512
-justify option (widgets), 504

K
-k file test operator, 60
keys(), 108
keywords() (CGI.pm), 342
Kill() (Win32::Process), 585
kill(), 108
Koenig, Andreas, 10

L
L command (Perl debugger), 145
l command (Perl debugger), 145
-l file test operator, 60
-l option (perl), 33
-l option (dprofpp), 154
L<> interior sequence (pod), 80
-L option (perlcc), 40
label_exists() (Mail::Folder), 407
-label option
   Frame widget, 541
   Menubutton widget, 537
   Scale widget, 534
Label widget (Perl/Tk), 509
-labelPack option (Frame), 541
labels
   loops, 50
   statement blocks, 48
-labelVariable option (Frame), 541
last(), 108
   Net::NNTP module, 429
   Net::POP3 module, 397
last command, 50
last index (Menu widget), 539
last_labeled_message() (Mail::Folder), 408
Last() (Mail::POP3Client), 421
last_message() (Mail::Folder), 408
$LAST_PAREN_MATCH ($+) variable, 56
LastError() (Win32::OLE), 601
LaTeX, translating pod to, 83
lc(), 108
lcfirst(), 108
le (less-than-or-equal) operator, 59
-length option (Scale), 534
length(), 109
less module, 258
less-than (<, lt) operators, 59
less-than-or-equal (<, le) operators, 59
lexical scoping, 47, 71
lib module, 259
libnet modules, 390
library modules, functions for, 86
lib-win32 library (see Win32 modules)
lib-www-perl file (see LWP library)
__LINE__ constant, 55
line-end processing, 33
LineInfo option (PERLDB_OPTS), 153
line-input <...> operator, 75
linestart, lineend modifiers (Text widget), 518
link(), 109
link object (PerlScript), 610
Lint backend (Perl compiler), 39
Linux, installing Perl and, 13
list()
   Net::FTP module, 445
   Net::NNTP module, 430
   Net::POP3 module, 397
List() (Mail::POP3Client), 421
list active command (NNTP), 424
list_all_labels() (Mail::Folder), 408
list context, 46
list_labels() (Mail::Folder), 408
list operators, 58
list prototype symbol (@), 72
$LIST_SEPARATOR ($") variable, 52
List() (Win32::Internet), 572
Listbox widget (Perl/Tk), 513
listen(), 109
   Socket module, 380, 383
Listen option
   IO::Socket::INET module, 388
   IO::Socket::UNIX module, 389
listgroup() (Net::NNTP), 430
lists, 45
   functions for processing, 86
   passing arguments to subroutines, 70
.lnk files, 592-595
load()
   HTTP::Cookies module, 470
   News::Newsrc module, 435
Load()
   Win32::OLE::Const module, 607
   Win32::Registry module, 589
   Win32::Shortcut module, 593
loading functions
   AutoLoader module, 169
   DynaLoader module, 198
   SelfLoader module, 291
local(), 109
Local option (IO::Socket::UNIX), 389
local variables, 47, 71
LocalAddr option (IO::Socket::INET), 387
locale module, 259
LocalPort option (IO::Socket::INET), 387
localtime(), 47, 109
location object (PerlScript), 610
log(), 110
-log option (perlcc), 40
LOGDIR variable, 38
logical operators, 61
login()
   Net::FTP module, 445
   Net::Netrc module, 450
   Net::POP3 module, 395, 397
login entries (.netrc), 449
Login() (Mail::POP3Client), 419, 421
LongReadLen attribute (DBI), 369
LongTruncOk attribute (DBI), 369
look command (CPAN.pm), 22
lookup() (Net::Netrc), 450
loops, 48
lower() (Canvas), 531
low-level socket access functions, 87
lpa() (Net::Netrc), 450
ls() (Net::FTP), 445
lstat(), 110
lt (less-than) operator, 59
LWP library, 451-489
   HTML modules, 476-484
      HTML::Element, 479-482
      HTML::FormatPS, 483-484
      HTML::FormatText, 484
      HTML::Parser, 476-479
      HTML::TreeBuilder, 482-483
   HTTP modules
      HTTP::Cookies, 469-472
      HTTP::Cookies::Netscape, 472
      HTTP::Daemon, 472-475
      HTTP::Daemon::ClientConn, 474-475
      HTTP::Date, 468
      HTTP::Headers, 465-467
      HTTP::Message, 475-476
      HTTP::Request, 452, 461-462
      HTTP::Response, 453, 462-465
      HTTP::Status, 467-468
   LWP::Debug module, 454
   LWP::MediaTypes module, 454
   LWP::Protocol module, 454
   LWP::RobotUA module, 453-455
   LWP::Simple module, 453, 455-457
   LWP::UserAgent module, 452-453, 457-460
   URI modules, 484-489
      URI::Escape, 485
      URI::Heuristic, 485
      URI::URL, 485-489

M
m command (CPAN.pm), 23
m command (Perl debugger), 146
-M file test operator, 60
-m option (perl), 33
m pattern match modifier, 63, 69
-M option (perl), 33
macdef entries (.netrc), 449
MacEachern, Doug, 354
machine entries (.netrc), 449
mail() (Net::SMTP), 394
MAIL command (SMTP), 392
Mail modules, 390, 398-422
   Mail::Address module, 414-417
   Mail::Folder module, 402-411
   Mail::Internet module, 411-414
   Mail::Mailer module, 398-400
   Mail::POP3Client module, 417-422
   Mail::Send module, 400-402
mailing lists, Perl-related, 7
MailTools collection, 390
main namespace, 160
MainLoop statement (Perl/Tk), 494
maintaining state (CGI), 333
make command (CPAN.pm), 23
make utility, 17
Makefiles, 18
MakeMaker utility, 19
MakeMask() (Win32::FileSecurity), 562
man command, 26
man pages, translating pod to, 83
manpages, Perl-related, 26
map(), 110
mark_list() (News::Newsrc), 436
mark() (News::Newsrc), 435
mark_range() (News::Newsrc), 436
marked_articles() (News::Newsrc), 435
marked() (News::Newsrc), 435
markGravity() (Text widget), 524
markNames() (Text widget), 524
marks, with Text widgets, 523
markSet() (Text widget), 524
markUnset() (Text widget), 524
$MATCH ($&) variable, 56
Math modules, 259-265
   Math::BigFloat module, 259
   Math::BigInt module, 261
   Math::Complex module, 263
   Math::Trig module, 264
max_size() (LWP::UserAgent), 459
maxsize() (Frame widget), 542
MaxWindow() (Win32::Console), 553
mdtm() (Net::FTP), 445
memory, 46, 160
menu() (Menubutton), 538
-menu option
   Menubutton widget, 536-537
   Optionmenu widget, 540
Menu widget (Perl/Tk), 538
Menubutton widget (Perl/Tk), 535
-menuitems option
   Menu widget, 538
   Menubutton widget, 535-536
message() (HTTP::Response), 465
Message() (Mail::POP3Client), 421
message_exists() (Mail::Folder), 408
message_list() (Mail::Folder), 408
message-embedded scripts, 33
message-oriented protocols, 380
metacharacters for regular expressions, 65
   anchors, 67
   character classes, 66
   escaped sequences, 66
   quantifiers, 67
method() (HTTP::Request), 462
method attribute (<form> tags), 323
methods, 162
   instance vs. class methods, 162
   widget (Perl/Tk), 494
minimal matching, 68
minsize() (Frame widget), 542
mirror()
   LWP::Simple module, 457
   LWP::UserAgent module, 459
Mkdir() (Win32::Internet), 573
mkdir(), 111
   Net::FTP module, 445
mod_include module, 358
-mod option (perlcc), 40
mod_perl module, 354-359
   installing, 355
   <Perl> directives (Apache), 358
   running CGI scripts with, 357-358
   SSI with, 358
Mode()
   Win32::Console module, 553
   Win32::Internet module, 573
modifiers, conditional, 49
modules, Perl, 4, 159-161
   compiling into shared objects, 40
   -m, -M options (perl), 33
   obtaining and installing, 15-25
   obtaining from CPAN, 12
   standard, list of, 164-317
modulus (%) operator, 59
MouseButtons() (Win32::Console), 553
move() (Canvas), 531
msgctl(), 111
msgget(), 111
msgrcv(), 111
msgsnd(), 112
multiline fieldholder, 76
multiline scripts, 33
multiplex service, CPAN, 10
multiplication (*) operator, 59
multithreading, 41
mutex objects, 577
my(), 71, 112

N
n command (Perl debugger), 146
n index
   Entry widget, 510
   Listbox widget, 514
   Menu widget, 538
   Text widget, 517
-n option (perl), 33
\n (newline) sequence, 66
NAME attribute (DBI), 369
name() (Mail::Address), 416
named parameters (CGI), 334
namespaces, 46, 160
naming
   loop labels, 50
   packages, 160
   statement block labels, 48
   variables, 46
navigator object (PerlScript), 610
NDBM_File module, 265
ne (not equal to) operator, 59
nearest() (Listbox), 515
neat() (DBI), 373
neat_list() (DBI), 374
Net modules, 265-270, 390-398
   Net::FTP module, 441-449
   Net::hostent module, 265
   Net::netent module, 266
   Net::Netrc module, 449-450
   Net::News module, 426-433
   Net::Ping module, 266
   Net::POP3 module, 395-398
   Net::protoent module, 268
   Net::servent module, 269
   Net::SMTP module, 391-395
   Net::SNPP and Net::Time modules, 390
netloc() (URI::URL), 487
.netrc file, 449-450
netresource data structure, 582
:netscape method group, 333
NetShareAdd() (Win32::NetResource), 583
NetShareCheck() (Win32::NetResource), 584
NetShareDel() (Win32::NetResource), 584
NetShareGetInfo() (Win32::NetResource), 584
NetShareSetInfo() (Win32::NetResource), 584
Network News Transfer Protocol (NNTP), 423-426
networking
   email, 390-422
   fetching information, function for, 87
   server administration, 577-581
   sockets, 379-389
      built-in functions for, 380-384
      IO::Socket module, 385-389
      IO::Socket::INET subclass, 387-389
      IO::Socket::UNIX subclass, 389
   Usenet news, 423-438
new()
   HTML::Element module, 479
   HTML::FormatPS module, 483
   HTML::Parser module, 477
   HTTP::Cookies module, 469
   HTTP::Cookies::Netscape module, 472
   HTTP::Daemon module, 472
   HTTP::Headers module, 465
   HTTP::Request module, 461
   HTTP::Response module, 463
   LWP::RobotUA module, 454
   Mail::Address module, 415
   Mail::Folder module, 403
   Mail::Internet module, 412
   Mail::Mailer module, 399
   Mail::POP3Client module, 419
   Mail::Send module, 401
   Net::FTP module, 442
   Net::NNTP module, 427
   Net::POP3 module, 396
   Net::SMTP module, 393
   News::Newsrc module, 434
   URI::URL module, 485
   Win32::ChangeNotification module, 557
   Win32::Console module, 549
   Win32::EventLog module, 558
   Win32::Internet module, 562-563
   Win32::Mutex module, 577
   Win32::OLE module, 599
   Win32::OLE::Enum module, 603
   Win32::OLE::Variant module, 605
   Win32::Semaphore module, 590
   Win32::Shortcut module, 592
newgroups() (Net::NNTP), 430
newnews() (Net::NNTP), 430
news, 423-438
   Net::News module, 426-433
   News::Newsrc module, 433-438
   NNTP protocol, 424-426
newsgroups
   listing available, 424
   Perl-related, 6
newsgroups() (Net::NNTP), 431
.newsrc file, 433-438
News::Newsrc module, 433-438
next command, 49-50
next_labeled_message() (Mail::Folder), 408
next_message() (Mail::Folder), 409
Next() (Win32::OLE::Enum), 604
next(), 112
   Net::NNTP module, 431
nlst() (Net::FTP), 446
NNTP (Network News Transfer Protocol), 423-426
nntppost() (Mail::Internet), 413
nntpstat() (Net::NNTP), 431
no_proxy() (LWP::UserAgent), 460
no_visits() (LWP::RobotUA), 455
none index (Menu widget), 539
non-greedy matching, 68
NonStop option (PERLDB_OPTS), 153
noTTY option (PERLDB_OPTS), 153
no(), 113
nph() (CGI.pm), 342
$NR variable, 51
NTFS file permissions, 561-562
NULLABLE attribute (DBI), 369
NUM_OF_FIELDS attribute (DBI), 369
NUM_OF_PARAMS attribute (DBI), 369
numbers, 43
   \d (digit) character class, 67
   \D (nondigit) character class, 67
   fixed-precision numeric fields, 76
   functions for, 86

O
o command (CPAN.pm), 23
O command (Perl debugger), 146
-o file test operator, 60
-O file test operator, 60
O module, 270
-O option (dprofpp), 155
-o option (perlcc), 40
o pattern match modifier, 63
object-oriented programming, 161-162
objects, 161
   functions for, 87
   instance vs. class methods, 162
obtaining Perl modules, 12, 15-17
obtaining Perl source code, 10-12
oct(), 113
ODBM_File module, 270
-offvalue option
   Checkbutton widget, 507
   Menubutton widget, 537
$OFMT ($#) variable, 52
$OFS ($,) variable, 52
-ok option (perlbug), 156
-okay option (perlbug), 156
OLE automation, 598-607
-onvalue option
   Checkbutton widget, 507
   Menubutton widget, 537
Opcode module, 270
open(), 74, 113
   document object (PerlScript), 611
   Mail::Folder module, 409
   Mail::Mailer module, 400
   Mail::Send module, 400, 402
   Win32::Mutex module, 577
   Win32::Semaphore module, 590
Open() (Win32::Registry), 587
opendir(), 114
OpenRequest() (Win32::Internet), 574
OpenURL() (Win32::Internet), 569
operators, 57-63
ops module, 272
Optionmenu widget (Perl/Tk), 540
-options option (Optionmenu), 540
OR (|) operator, bitwise, 62
OR (||) operator, logical, 61
oraperl package, 366
ord(), 114
-orient option
   Scale widget, 534
   Scrollbar widget, 512
$ORS ($\) variable, 52
Orwant, Jon, 8
$OS_ERROR ($!) variable, 52
$OSNAME ($^O) variable, 54
output
   formats for, 75-77
   (see also input)
$OUTPUT_AUTOFLUSH ($|) variable, 56
$OUTPUT_FIELD_SEPARATOR ($,) variable, 52
$OUTPUT_RECORD_SEPARATOR ($\) variable, 52
OutputCP() (Win32::Console), 553
=over command (pod), 80
overload module, 273
overridedirect() (Frame widget), 542
overview_fmt() (Net::NNTP), 431

P
p command (Perl debugger), 147
-p file test operator, 60
-p option (perl), 33
-p option (dprofpp), 155
-P option (perl), 33
pack(), 114
   Mail::Folder folder, 409
pack geometry manager (Perl/Tk), 496-498
package(), 115
__PACKAGE__ constant, 55
package statement, 160
packages, 160
packet-oriented communication, 380
packForget() (pack geometry manager), 498
packInfo() (pack geometry manager), 498
packPropogate() (pack geometry manager), 498
packSlaves() (pack geometry manager), 498
-padx, -pady options, 504
   grid geometry manager, 499
   pack geometry manager, 497
paragraph tags (pod), 78
param() (CGI.pm), 330, 343
params() (URI::URL), 488
parent() (HTML::Parser), 481
parentheses ()
   around function arguments, 85
   metacharacter, 66
   operator precedence and, 57
   (?...) extended regular expression syntax, 69
parse_file() (HTML::Parser), 477
parse_head() (LWP::UserAgent), 460
parse() (Mail::Address), 416
parse()
   HTML::Parser module, 477
parsing command-line options, 33
parsing email addresses, 414-417
Pass() (Mail::POP3Client), 421
pass() (Net::POP3), 395
PASS command (POP3), 395
pass() (Net::POP3), 397
passing arguments to subroutines, 70
passing references to subroutines, 71
password()
   Net::Netrc module, 450
   URI::URL module, 488
password entries (.netrc), 449
password_field() (CGI.pm), 343
Password() (Win32::Internet), 569
pasv() (Net::FTP), 446
pasv_wait() (Net::FTP), 446
Pasv() (Win32::Internet), 573
pasv_xfer() (Net::FTP), 446
pasv_xfer_unique() (Net::FTP), 446
patches for Perl source code, 13
path()
   Mail::Address module, 416
   URI::URL module, 488
path_info() (CGI.pm), 344
PATH_INFO variable, 326
Path property (response cookies), 615
path_translated() (CGI.pm), 344
PATH_TRANSLATED variable, 326
PATH variable, 38
   searching for scripts using, 33
PATHEXT variable, 38
pattern matching functions, 86
pattern matching operators, 60, 63
PauseService() (Win32::Service), 591
PeekInput() (Win32::Console), 553
Peer option (IO::Socket::UNIX), 389
peeraddr() (IO::Socket::INET), 388
PeerAddr option (IO::Socket::INET), 387
peerhost() (IO::Socket::INET), 389
peerpath (IO::Socket::UNIX), 389
peerport() (IO::Socket::INET), 388
PeerPort option (IO::Socket::INET), 387
percent sign (%)
   dereferencing with, 73
   modulus operator, 59
   prototype symbol (hash), 71
   %= (assignment) operator, 60
performance
   CGI programs, 322
   CGI scripts, with mod_perl, 357-358
period (see dot)
perl-bin directory, 357
Perl compiler, 39
PERL_DEBUG_MSTATS variable, 39
Perl debugger, 142-153
   commands for, 143-152
   customizing, 153
PERL_DESTRUCT_LEVEL variable, 39
<Perl> directives (Apache), 358-359
Perl Institute, 8
Perl Journal, 8
Perl language
   bugs in, reporting, 155-156
   documentation, 25-27, 77-84
      = to signify in programs, 43
      utilities for, 81-84
   example scripts, 13
   installing source code, 12-15
   modules (see modules, Perl)
   obtaining source from CPAN, 10-12
   resources, 5
   uses of, 4-5
   (see also scripts, Perl)
PERL_MAILERS variable, 399
PERL_MODULE_EXT variable, 41
Perl Package Manager (PPM), 19
perl (Perl interpreter), 31-37
   command processing, 32-33
   command-line options, 33-37
Perl Porters, 5
Perl profiler (DProf), 154-155
PERL_SCRIPT_EXT variable, 41
perl-script handler, 356-357
$PERL_VERSION ($]) variable, 53
PERL5LIB variable, 38
PERL5OPT variable, 38
PERL5SHELL variable, 39
perlbug program, 155-156
perlcc utility, 40
.perldb file, 153
PERLDB_OPTS variable, 153
$PERLDB ($^P) variable, 54
perldoc command, 26
perldoc utility, 81
PerlHandler directive (mod_perl), 356-357
PERLLIB variable, 38
PerlModule directive (mod_perl), 357
PerlScript, 608-617
   client-side PerlScript, 609-612
   server-side PerlScript, 612-617
PerlSendHeader directive (mod_perl), 357
Perl/Tk, 493-543
   callbacks, 496
   colors and fonts, 496
   geometry managers, 496-502
   scrollbars, 495
   widgets, 494-496
      Button widget, 506
      Canvas widget, 524-533
      Checkbutton widget, 506
      common configuration options, 502-506
      Entry widget, 509-512
      Frame widget, 540
      Label widget, 509
      Listbox widget, 513
      Menu widget, 538
      Menubutton widget, 535
      Optionmenu widget, 540
      Radiobutton widget, 508
      Scale widget, 534
      Scrollbar widget, 512
      Text widget, 516-524
      toplevel widget, 541
   widgets methods, 494
phrase() (Mail::Address), 415, 417
Pics property (Response object), 616
$PID ($$) variable, 53
ping() (DBI), 374
pipe(), 116
place geometry manager (Perl/Tk), 500-502
placeForget() (place geometry manager), 501
placeholders (DBI), 369
placeInfo() (place geometry manager), 502
placeSlaves() (place geometry manager), 502
platforms, 5
plus (+)
   metacharacter, 65
   unary operator, 58
   += (assignment) operator, 60
   ++ (autoincrement) operator, 60
   +? regular expression quantifier, 68
.pm filename extension, 160
=pod command (pod), 80
pod documentation, 25-27, 77-84
   = to signify in programs, 43
   utilities for, 81-84
Pod::Functions module, 275
Pod::Html module, 275
Pod::Text module, 275
pod2fm utility, 81
pod2html utility, 83, 275
pod2latex utility, 83
pod2man utility, 83
pod2text utility, 84, 275
POP3 protocol, interface to, 395-398, 417-422
POPStat() (Mail::POP3Client), 421
popstat() (Net::POP3), 397
popup_menu() (CGI.pm), 344
pop(), 116
port()
   Net::FTP module, 446
   URI::URL module, 488
Port() (Mail::POP3Client), 421
Porters, 5
pos() HTML::Parser), 481
positionfrom() (Frame widget), 542
POSIX module, 275
post command (NNTP), 426
post() (Menu widget), 539
POST method (CGI), 323, 461
post() (Net::NNTP), 431
Post Office Protocol (POP3), 395-398, 417-422
postcascade() (Menu widget), 539
-postcommand option (Menu), 538
posting news articles, 426
$POSTMATCH ($') variable, 56
postok() (Net::NNTP), 431
postscript() (Canvas), 532
PostScript, converting HTML parse tree to, 483-484
pos(), 116
pound sign (see #)
PPM (Perl Package Manager), 19
precedence, operator, 57
predefined Perl variables, 51-56
$PREMATCH ($`) variable, 56
prepare() (DBI), 368, 374
prev_labeled() (Mail::Folder), 409
prev_message() (Mail::Folder), 409
print(), 116
   Socket module, 382
print_header() (Mail::Internet), 413
PrintError attribute (DBI), 369
printf(), 117
private variables, 47, 71
$PROCESS_ID ($$) variable, 53
process management, 584-586
product_tokens() (HTTP::Daemon), 473
profiler, Perl (DProf), 154-155
-prog option (perlcc), 41
program flow control functions, 86
$PROGRAM_NAME ($0) variable, 53
program structure, 42
properties, document object (PerlScript), 611
Proto option (IO::Socket::INET), 387
protocol()
   Frame widget module, 543
   HTTP::Message module, 476
   IO::Socket module, 387
prototypes for subroutines, 70-71
prototype(), 118
proxy() (LWP::UserAgent), 460
push(), 118
push_content() (HTML::Parser), 481
push_header() (HTTP::Headers), 466
put() (Net::FTP), 447
PUT requests (CGI), 461
put_unique() (Net::FTP), 447
Put() (Win32::Internet), 573
pwd() (Net::FTP), 447
Pwd() (Win32::Internet), 574

Q
q command (CPAN.pm), 24
q command (Perl debugger), 147
-Q option (dprofpp), 155
-q option (dprofpp), 155
q// pattern match operator, 64, 118
qty() (Mail::Folder), 409
quantifiers for regular expressions, 67
query() (URI::URL), 488
QUERY_STRING variable, 323, 326
QueryDataAvailable() (Win32::Internet), 569
QueryInfo() (Win32::Internet), 575
QueryKey() (Win32::Registry), 589
QueryObjectType() (Win32::OLE), 601
QueryOption() (Win32::Internet), 569
QueryString collection, 614
QueryValue() (Win32::Registry), 588
question mark (?)
   metacharacter, 65
   ?: (conditional) operator, 62
   ?? regular expression quantifier, 68
   ?...? pattern match operator, 64
   ?...? Perl debugger command, 150
QUIT command (SMTP), 392
quit()
   Net::FTP module, 447
   Net::NNTP module, 431
   Net::POP3 module, 397
   Net::SMTP module, 394
quot() (Net::FTP), 447
quote() (DBI), 374
quotemeta(), 118
quoting schemes, 44

R
r command (CPAN.pm), 24
r command (Perl debugger), 147
R command (Perl debugger), 148
-r file test operator, 60
-R file test operator, 60
-r option (dprofpp), 155
-r option (perlbug), 156
\r (carriage return) sequence, 66
radio_group() (CGI.pm), 345
radiobutton() (Menubutton), 538
Radiobutton widget (Perl/Tk), 508
raise() (Canvas), 531
RaiseErrot attribute (DBI), 369
rand(), 118
range (..) operator, 62
range (...) operator, 62
raw_cookie() (CGI.pm), 346
RC_ mnemonics (HTTP::Status), 467
RCPT command (SMTP), 392
re module, 287
read(), 119
Read() (Win32::EventLog), 558
ReadAttr() (Win32::Console), 553
ReadChar() (Win32::Console), 554
readdir(), 119
ReadEntireFile() (Win32::Internet), 569
reader() (Net::NNTP), 432
ReadFile() (Win32::Internet), 569
reading email messages (Mail::POP3Client), 417-422
reading news articles, 425
ReadLine option (PERLDB_OPTS), 153
readline(), 119
readlink(), 119
readme command (CPAN.pm), 25
ReadParse() (CGI.pm), 346
readpipe(), 120
ReadRect() (Win32::Console), 554
$REAL_GROUP_ID ($() variable, 53
$REAL_USER_ID ($<) variable, 53
recipient() (Net::SMTP), 395
recompile command (CPAN.pm), 25
record separator, specifying, 33
records, functions for, 86
recv(), 120
   Socket module, 380
redirect() (CGI.pm), 346
Redirect() (Response object, PerlScript), 617
redo command, 50
redo(), 120
ref(), 74, 120
references, 72-74
   passing to subroutines, 71
   (see also scalars)
referer() (CGI.pm), 346
refile() (Mail::Folder), 410
-regex option (perlcc), 41
Registry access and management, 587-589
regular expressions, 63-70
   anchors, 67
   character classes, 66
   escaped sequences, 66
   extended, syntax for, 69
   functions for, 86
   metacharacters, 65
   pattern match variables, 68
   pattern matching operators, 60, 63
   quantifiers, 67
   special (predefined) variables, 55
rel() (URI::URL), 488
relational operators, 59
release()
   Win32::Mutex module, 577
   Win32::Semaphore module, 590
-relheight, -relwidth options (place geometry manager), 501
-relief option (widgets), 505
reload command (CPAN.pm), 25
-relx, -rely options (place geometry manager), 501
REMOTE_ADDR variable, 326
remote_host() (CGI.pm), 346
REMOTE_HOST variable, 326
REMOTE_IDENT variable, 326
remote_user() (CGI.pm), 347
REMOTE_USER variable, 326
remove_header() (HTTP::Headers), 466
remove_sig() (Mail::Internet), 413
Rename() (Win32::Internet), 574
rename(), 120
   Net::FTP module, 447
-repeatdelay option
   Scale widget, 534
   Scrollbar widget, 512
-repeatinterval option
   Scale widget, 534
   Scrollbar widget, 512
reply() (Mail::Internet), 414
Report() (Win32::EventLog), 559
reporting bugs in Perl, 155-156
request() (LWP::UserAgent), 457
Request() (Win32::Internet), 576
Request object (PerlScript), 613-614
request_method() (CGI.pm), 347
REQUEST_METHOD environment variable, 326
requests, HTTP
   HTTP::Request module, 452, 461-462
   UserAgent object for, 452-453, 457-460
require(), 121
require directives, 161
Reset()
   Win32::OLE::Enum module, 604
reset() (CGI.pm), 347
Reset() (Mail::POP3Client), 419, 422
reset() (Net::POP3), 398
reset() (Net::SMTP), 395
reset() (Win32::ChangeNotification), 558
reset(), 121
resizable() (Frame widget), 543
-resolution option (Scale), 534
Resolve() (Win32::Shortcut), 593
resources for further reading, 5
resources, managing shared, 581-584
Response object (PerlScript), 613-617
responses, HTTP, 462-465
Resume() (Win32::Process), 586
ResumeService() (Win32::Service), 591
retr() (Net::FTP), 448
Retrieve() (Mail::POP3Client), 418, 422
retrieving email messages, 395-398
return(), 121
return statement, 70
Reuse option (IO::Socket::INET), 388
reverse(), 122
revert() (HTTP::Cookies), 470
rewinddir(), 122
rindex(), 122
Rmdir() (Win32::Internet), 574
rmdir(), 122
   Net::FTP module, 448
Robot User Agent, 454-455
rollback() (DBI), 374
-row option (grid manager), 499
rows() (DBI), 374
-rowspan option (grid manager), 499
rules() (LWP::RobotUA), 455
-run option (perlcc), 41
RUNAT attribute (<SCRIPT>), 612

S
\S (nonwhitespace) character class, 67
\s (whitespace) character class, 67
s command (Perl debugger), 148
S command (Perl debugger), 148
-s file test operator, 60
-S file test operator, 60
-s option (dprofpp), 155
-s option (perlbug), 156
-S option (perlbug), 156
s pattern match modifier, 63, 69
S<> interior sequence (pod), 81
-S option (perl), 33
-s option (perl), 33
s/// (substitution) operator, 63-64
Safe module, 287
-sav option (perlcc), 41
save_as() (News::Newsrc), 436
save()
   CGI.pm module, 347
   HTTP::Cookies module, 471
   News::Newsrc module, 436
Save()
   Win32::Registry module, 589
   Win32::Shortcut module, 593
scalar(), 47, 122
scalar context, 46
scalar prototype symbol ($), 72
scalars, 43
   arrays of (see arrays)
   functions for manipulating, 86
   lists of (see lists)
   references (see references)
scale() (Canvas), 533
Scale widget (Perl/Tk), 534
scan()
   HTTP::Cookies module, 472
   HTTP::Headers module, 466
scheme() (URI::URL), 489
scope, variable, 47, 71
   functions for, 86
-screen option (toplevel), 541
script object (PerlScript), 610
<SCRIPT> tags, 609
script_name() (CGI.pm), 347
SCRIPT_NAME environment variable, 326
scripts, Perl
   checking syntax without running, 33
   debugging (see debugging)
   examples, obtaining, 13
Scroll() (Win32::Console), 554
Scrollbar widget (Perl/Tk), 495, 512
scrollbars, widget (Perl/Tk), 495
Scrolled() (Perl/Tk), 495
scrolling_list() (CGI.pm), 347
-scrollregion option (Canvas), 524
SDBM_File module, 290
search() (Text widget), 519
Search::Dict module, 290
searching for scripts with PATH, 33
secure property (response cookies), 615
see()
   Listbox widget, 515
   Text widget, 519
seek(), 123
seekdir(), 123
select(), 123
   Checkbutton widget, 507
   Mail::Folder module, 410
   Radiobutton widget, 508
select_label() (Mail::Folder), 410
Select() (Win32::Console), 554
-selectbackground option (widgets), 505
-selectborderwidth option (widgets), 505
-selectcolor option
   Checkbutton widget, 507
   Menu widget, 538
   Menubutton widget, 537
   Radiobutton widget, 508
-selectforeground option (widgets), 505
-selectimage option
   Checkbutton widget, 507
   Menubutton widget, 537
   Radiobutton widget, 508
selection()
   Entry widget, 511
   Listbox widget, 515
-selectmode option (Listbox), 513
SelectSaver module, 290
self_url() (CGI.pm), 348
sel.first, sel.last indexes
   Entry widget, 510
   Text widget, 517
SelfLoader module, 291
semaphores, implementing, 590
semctl(), 124
semget(), 124
semicolon (;)
   ending Perl statements, 42
   in prototype declarations, 72
semop(), 124
send(), 124
send_basic_header() (HTTP::Daemon::ClientConn), 474
send_error() (HTTP::Daemon::ClientConn), 475
send_file() (HTTP::Daemon::ClientConn), 475
send_redirect() (HTTP::Daemon::ClientConn), 475
send_response() (HTTP::Daemon::ClientConn), 474
send() (Socket), 380
send_status_line() (HTTP::Daemon::ClientConn), 474
sending email messages, 391-395
SendRequest() (Win32::Internet), 576
separator() (Menubutton), 538
SERVER_NAME variable, 326
Server object (PerlScript), 613
SERVER_PORT variable, 326
SERVER_PROTOCOL variable, 326
SERVER_SOFTWARE variable, 326
server-side includes (SSI), mod_perl with, 358
server-side PerlScript, 608, 612-617
server-side socket connections, 382, 385
ServerVariables collection, 614
service control interface, 590-591
Session object (PerlScript), 613
set()
   Mail::Send module, 400, 402
   Scale widget, 535
   Scrollbar widget, 513
Set-Cookie header, 469
set_cookie() (HTTP::Cookies), 471
Set-Cookie2 header, 469
set_option() (Mail::Folder), 410
set_readonly() (Mail::Folder), 410
Set() (Win32::FileSecurity), 562
SetAttributes() (Win32::File), 560
Set-Cookie header, 615
setgrent(), 125
-setgrid option
   Listbox widget, 514
   Text widget, 516
SetHandler directive (mod_perl), 356
sethostent(), 125
setnetent(), 125
SetOption() (Win32::Internet), 569
setpgrp(), 125
SetPriorityClass() (Win32::Process), 586
setpriority(), 125
setprotoent(), 126
setpwent(), 126
setservent(), 126
setsockopt(), 126
SetStatusCallback() (Win32::Internet), 570
SetValue() (Win32::Registry), 588
SetValueEx() (Win32::Registry), 588
Set()
   Win32::Shortcut module, 594
share_info hash, 581
shared resources, managing, 581-584
Shell module, 291
shift(), 126
shmctl(), 127
shmget(), 127
shmread(), 127
shmwrite(), 127
shortcut files, 592-595
-show option (Entry), 509
Showlex backend (Perl compiler), 39
-showvalue option (Scale), 534
shutdown(), 128
   Socket module, 380
-side option (pack geometry manager), 497
%SIG hash, 54
sigtrap module, 291
Simple Mail Transport Protocol (SMTP), 391-395
sin(), 128
Size() (Win32::Console), 555
sizefrom() (Frame widget), 543
size()
   Listbox widget, 515
   Net::FTP module, 448
Size()
   Mail::POP3Client module, 422
Skip() (Win32::OLE::Enum), 604
slash (/)
   division operator, 59
   encoding in URLs, 325
   /= (assignment) operator, 60
   /.../ pattern match operator, 63
   /.../ Perl debugger command, 150
slave() (Net::NNTP), 432
sleep(), 128
slider (Scale) widget, 534
-sliderlength option (Scale), 534
SMTP protocol, interface to, 391-395
smtpsend() (Mail::Internet), 414
sockaddr() (IO::Socket::INET), 388
sockaddr_in() (Socket), 381-383
sockaddr_un() (Socket), 384
sockdomain() (IO::Socket), 387
socket(), 128
   Socket module, 380
Socket() (Mail::POP3Client), 422
Socket module, 292
socket() (Socket), 381
socketpair(), 128
sockets, 379-389
   built-in functions for, 380-384
   client-side connections, 381, 385
   initializing, 381
   IO::Socket module, 385-389
      IO::Socket::INET subclass, 387-389
   IO::Socket::UNIX subclass, 389
   low-level access functions, 87
   server-side connections, 382, 385
   Socket module functions, 383
sockhost() (IO::Socket::INET), 388
sockopt() (IO::Socket), 386
sockport() (IO::Socket::INET), 388
socktype() (IO::Socket), 387
sort(), 129
   Mail::Folder module, 410
source code for Perl, obtaining, 10-12
-spacing1, -spacing2, -spacing3 options (Text), 516
splice(), 129
split(), 129
sprintf(), 130
SQL statement placeholders, 369
sqrt(), 131
srand(), 131
SSI (server-side includes), mod_perl with, 358
:ssl method group, 333
:standard method group, 333
standard modules, list of, 164-317
start_html() (CGI.pm), 334, 348
start_multipart_form() (CGI.pm), 350
startform() (CGI.pm), 349
StartService() (Win32::Service), 591
starttag() (HTML::Parser), 481
stat(), 131
state()
   DBI module, 375
   Frame widget, 543
State() (Mail::POP3Client), 422
state, maintaining (CGI), 333
-state option (widgets), 505
statement handles (DBI methods), 368-369
statements, 48-50
Status property (Response object), 616
STDERR filehandle, 55, 74
STDIN filehandle, 55, 74
STDOUT filehandle, 55, 74
-sticky option (grid manager), 499
StopService() (Win32::Service), 591
stor() (Net::FTP), 448
stou() (Net::FTP), 448
str2time() (HTTP::Date), 468
strict() (URI::URL), 489
strict module, 292
string literals, 44
   \A anchor (string beginning), 67
   character classes, 66
   comparing, 59
   double-quoted string literals, 44
   operators for, 63
   \Z anchor (string/line end), 67
   \z anchor (string end), 67
string repetition (x) operator, 63
strings, alternate schemes for quoting, 44
structure of Perl programs, 42
study(), 132
sub(), 132
sub_groups() (News::Newsrc), 436
sub statement, 70
subject() (Mail::Send), 402
submit() (CGI.pm), 350
subroutines, 70-72
   constructors (see constructors)
subs module, 293
subscribe() (News::Newsrc), 436
subscribed() (News::Newsrc), 437
$SUBSCRIPT_SEPARATOR ($;) variable, 52
subscriptions() (Net::NNTP), 432
$SUBSEP ($;) variable, 52
substitution (s///) operator, 63-64
substr(), 132
success code (NNTP), 425
supported() (Net::FTP), 448
Suspend() (Win32::Process), 585
switches (see command-line options)
sybperl package, 366
Symbol module, 293
symbol tables, 160
symlink(), 133
sync() (Mail::Folder), 410
Sys::Hostname module, 294
Sys::Syslog module, 294
syscall(), 133
sysopen(), 133
sysread(), 133
sysseek(), 134
$SYSTEM_FD_MAX ($^F) variable, 53
System V interprocess communication functions, 87
system(), 134
syswrite(), 134

T
t command (Perl debugger), 148
T command (Perl debugger), 148
-T file test operator, 60
-t file test operator, 60
-T option (dprofpp), 155
-t option (dprofpp), 155
-t option (perlbug), 156
\t (tab) sequence, 66
-T option (perl), 33
-tabs option (Text), 517
tag() (HTML::Parser), 482
tagAdd() (Text widget), 521
tagBind() (Text widget), 521
tagCget() (Text widget), 522
tagConfigure() (Text widget), 521
tagDelete() (Text widget), 523
tagLower() (Text widget), 523
tagNames() (Text widget), 523
tagNextrange() t), 523
tagRaise() (Text widget), 523
tagRanges() (Text widget), 523
tagRemove() (Text widget), 523
tags, with Text widgets, 521
taint checking, 33
-takefocus option (widgets), 505
-tearoff option
   Menu widget, 538
   Menubutton widget, 536
   Optionmenu widget, 540
tell(), 134
telldir(), 135
templates for outputting data, 75-77
Term::Cap module, 295
Term::Complete module, 296
Term::ReadLine module, 297
test command (CPAN.pm), 25
Test::Harness module, 299
Test modules, 298
text, translating to/from pod, 84, 275
text indexes (Entry widgets), 510
Text modules, 299-301
   Text::Abbrev module, 299
   Text::ParseWords module, 300
   Text::Soundex module, 300
   Text::Tabs module, 301
   Text::Wrap module, 301
-text option
   Button widget, 506
   Checkbutton widget, 507
   Label widget, 509
   Menubutton widget, 536
   Optionmenu widget, 540
   Radiobutton widget, 508
Text widget (Perl/Tk), 516-524
textarea() (CGI.pm), 350
textfield() (CGI.pm), 351
-textvariable option
   Button widget, 506
   Checkbutton widget, 507
   Entry widget, 509
   Label widget, 509
   Menubutton widget, 536
   Optionmenu widget, 540
   Radiobutton widget, 508
Thread module, 302
   Thread::Queue module, 304
   Thread::Semaphore module, 305
   Thread::Signal module, 305
   Thread::Specific module, 305
threads (see multithreading)
-tickinterval option (Scale), 534
tidy_body() (Mail::Internet), 414
tie(), 135
Tie modules
   Tie::Array module, 306
   Tie::Handle module, 308
   Tie::Hash module, 309
   Tie::RefHash module, 310
   Tie::Scalar module, 311
   Tie::StdArray module, 306
   Tie::StdHash module, 309
   Tie::StdScalar module, 311
   Tie::SubstrHash module, 311
tied(), 136
tilde (~)
   bitwise negation operator, 58
   suppressing output whitespace, 77
   ~~ to print strings in fields, 77
time(), 136
time (see date and time)
Time modules
   Time::gmtime module, 312
   Time::Local module, 313
   Time::localtime module, 313
   Time::tm module, 314
time2str() (HTTP::Date), 468
TimeConvert() (Win32::Internet), 570
Timeout option (IO::Socket::INET), 388
timeout()
   IO::Socket module, 386
   LWP::UserAgent module, 460
times(), 136
title() (Frame widget), 543
Title() (Win32::Console), 555
Tk extension to Perl, 493-543
   callbacks, 496
   colors and fonts, 496
   geometry managers, 496-502
   scrollbars, 495
   widgets, 494-496
      Button widget, 506
      Canvas widget, 524-533
      Checkbutton widget, 506
      common configuration options, 502-506
      Entry widget, 509-512
      Frame widget, 540
      Label widget, 509
      Listbox widget, 513
      Menu widget, 538
      Menubutton widget, 535
      Optionmenu widget, 540
      Radiobutton widget, 508
      Scale widget, 534
      Scrollbar widget, 512
      Text widget, 516-524
      toplevel widget, 541
   widgets methods, 494
-to option (Scale), 534
toggle() (Checkbutton), 507
top() (Net::POP3), 398
toplevel widget (Perl/Tk), 541
to()
   Mail::Send module, 402
   Net::SMTP module, 395
tr// pattern match operator, 64
trace() (DBI), 375
transient() (Frame widget), 543
transport protocols, 380
traverse() (HTML::Parser), 482
-troughcolor option
   Scale widget, 535
   Scrollbar widget, 512
truncate(), 136
TTY option (PERLDB_OPTS), 153
type()
   Canvas widget, 532
   Menu widget, 539
Type option
   IO::Socket::INET module, 387
   IO::Socket::UNIX module, 389
Type() (Win32::OLE::Variant), 606
typeglob prototype symbol (*), 72
type()
   Net::FTP module, 449

U
u command (CPAN.pm), 25
-u file test operator, 60
-u option (perl), 33
-U option (dprofpp), 155
-u option (dprofpp), 155
-U option (perl), 33
uc(), 136
ucfirst(), 137
$UID ($<) variable, 53
uidl() (Net::POP3), 398
umask(), 137
unary operators, 58
uncompressing Perl source code, 12, 14
undef value, 45
undef(), 137
undelete_message() (Mail::Folder), 411
-underline option (widgets), 505
underscore (_)
   filehandle, 55
   improving number legibility, 44
undump program, 33
unescape_from() (Mail::Internet), 414
unique_name() (Net::FTP), 449
UNIVERSAL module, 314
Unix systems
   #! (shebang) line, 31
   command processing, 32
   installing Perl on, 12
Unix-domain sockets, 380
unless modifier, 49
unless statement, 48
unlink(), 137
unmark() (News::Newsrc), 437
unmark_list() (News::Newsrc), 437
unmark_range() (News::Newsrc), 438
unmarked_articles() (News::Newsrc), 437
unpack_sockaddr_in() (Socket), 384
unpack_sockaddr_un() (Socket), 384
unpacking Perl source code, 12, 14
unpack(), 138
unpost() (Menu widget), 539
unsafe operations, allowing, 33
unshift(), 138
unsub_groups() (News::Newsrc), 438
unsubscribe() (News::Newsrc), 438
untie(), 138
until modifier, 49
until statement, 48
update_message() (Mail::Folder), 411
URI modules, 484-489
   URI::Escape, 485
   URI::Heuristic, 485
   URI::URL, 485-489
   URI::URL module, 452
URIs (Universal Resource Identifiers), 452
URLs (uniform resource locators)
   encoding, 325-326
   extra path information, 326
   URI::URL module, 452, 485-489
   (see also Win32::Internet module), 563
url()
   CGI.pm module, 352
   HTTP::Daemon module, 473
   HTTP::Request module, 462
use_alarm() (LWP::UserAgent), 460
use directives, 159, 161
   use English, 51
   use integer, 59
   use Socket, 381
use_named_parameters() (CGI.pm), 352
Usenet news, 423-438
   Net::News module, 426-433
   News::Newsrc module, 433-438
Usenet newsgroups, Perl-related, 6
user()
   Mail::Address module, 415, 417
   Net::POP3 module, 395, 398
   URI::URL module, 489
use(), 138
user_agent() (CGI.pm), 352
USER command (POP3), 395
User::grent module, 315
User() (Mail::POP3Client), 422
user_name() (CGI.pm), 353
User::pwent module, 316
UserAgent object, 452-453, 457-460
UserAgent() (Win32::Internet), 570
UserCreate() (Win32::NetAdmin), 578
Username() (Win32::Internet), 570
users, fetching information on, 87
utime(), 139

V
v command (Perl debugger), 149
V command (Perl debugger), 149
-v option (perl), 33
-V option (dprofpp), 155
-v option (dprofpp), 155
-v option (perlbug), 156
-V option (perl), 33
valof() (Win32::OLE), 602
-value option
   Menubutton widget, 537
   Radiobutton widget, 508
Value() (Win32::OLE::Variant), 606
values(), 139
-variable option
   Checkbutton widget, 507
   Menubutton widget, 537
   Optionmenu widget, 540
   Radiobutton widget, 508
   Scale widget, 535
variables, 45-47
   declaration and scope, 47, 71
      scoping functions, 86
   local vs. private, 47, 71
   pattern match variables, 68
   scalar and list context, 46
   special (predefined), 51-56
Variant data structure, 604
vars module, 317
vec(), 139
verbatim paragraphs (pod), 78
-verbose option (perlcc), 41
verify() (Net::SMTP), 395
Version() (Win32::Internet), 570
versions of Perl
   obtaining current, 10
   printing, 33
   for Win32 systems, 13
versions of Perl modules, 17
vertical bar (|)
   format fieldholders, 76
   metacharacter, 66
   OR bitwise operator, 62
   Perl debugger command, 151
   |= (assignment) operator, 60
   || Perl debugger command, 151
   || (logical OR) operator, 61
   ||= (assignment) operator, 60
virtual web documents, 324
-visual option
   Frame widget, 541
   toplevel widget, 541
vmsish module, 317

W
\w (word) character class, 67
\W (nonword) character class, 67
w command (Perl debugger), 149
-W file test operator, 60
-w file test operator, 60
-w option (perl), 33
wait(), 140
   Win32::ChangeNotification module, 558
   Win32::Mutex module, 577
   Win32::Semaphore module, 590
Wait() (Win32::Process), 586
waitpid(), 140
Wall, Larry, 5
wantarray(), 141
warn(), 75, 141
   HTML::Parser module, 483
Warn attribute (DBI), 369
$WARNING ($^W) variable, 54
warnings when running scripts, 33
web access, LWP library for (see LWP library)
web client, creating, 455-457
web documents, virtual, 324
web server programming, 354-361
while loops, 48
while modifier, 49
whitespace
   encoding into URLs, 325
   in Perl programs, 42
   \S (non-whitespace) character class, 67
   \s (whitespace) character class, 67
   suppressing in formatted output, 77
widgets (Perl/Tk), 494-496
   callbacks, 496
   colors and fonts, 496
   common configuration options, 502-506
   geometry managers for, 496-502
   scrollbars, 495
   widget methods, 494
-width option, 505
   place geometry manager, 501
wildcards for regular expressions, 65
   anchors, 67
   character classes, 66
   escaped sequences, 66
   quantifiers, 67
Win32 modules, 547-607
   Win32::ChangeNotification module, 557-558
   Win32::Clipboard module, 548
   Win32::Console module, 549-557
   Win32::Eventlog module, 558-560
   Win32::File module, 560
   Win32::FileSecurity module, 561-562
   Win32::Internet module, 562-576
   Win32::IPC module, 576-577
   Win32::Mutex module, 577
   Win32::NetAdmin module, 577-581
   Win32::NetResource module, 581-584
   Win32::OLE modules, 598-607
   Win32::OLE::Const module, 606
   Win32::OLE::Enum module, 602
   Win32::OLE::Variant module, 604
   Win32::Process module, 584-586
   Win32::Registry module, 587-589
   Win32::Semaphore module, 590
   Win32::Service module, 590-591
   Win32::Shortcut module, 592-595
   Win32:AbortSystemShutdown(), 597
   Win32:BuildNumber(), 596
   Win32:DomainName(), 596
   Win32:ExpandEnvironmentStrings(), 597
   Win32:FormatMessage(), 597
   Win32:FsType(), 596
   Win32:GetCwd(), 596
   Win32:GetLastError(), 596
   Win32:GetNextAvailDrive(), 597
   Win32:GetOSVersion(), 596
   Win32:GetShortPathName(), 597
   Win32:GetTickCount(), 597
   Win32:InitiateSystemShutdown(), 597
   Win32:IsWin95(), 597
   Win32:IsWinNT(), 597
   Win32:LoginName(), 596
   Win32:LookupAccountName(), 597
   Win32:LookupAccountSID(), 597
   Win32:NodeName(), 596
   Win32:OLELastError(), 596
   Win32:RegisterServer(), 597
   Win32:SetCwd(), 596
   Win32:Sleep(), 597
   Win32:Spawn(), 597
   Win32:UnregisterServer(), 597
Win32 systems
   command processing, 32
   installing Perl on, 13
window() (Text widget), 519
Window() (Win32::Console), 555
Windows clipboard, 548
with() (Win32::OLE), 602
withdraw() (Frame widget), 543
WNetGetLastError() (Win32::NetResource), 583
wordstart, wordend modifiers (Text widget), 518
-wrap option (Text), 517
-wraplength option (widgets), 505
wrapping text, 301
Write()
   Response object, PerlScript, 617
   Win32::Console module, 555
write(), 76, 141
   document object (PerlScript), 609, 611
WriteAttr() (Win32::Console), 555
WriteChar() (Win32::Console), 556
WriteInput() (Win32::Console), 556
writeLn() (document object, PerlScript), 611
WriteRect() (Win32::Console), 556
www.perl.com and www.perl.org sites, 8

X
x command (Perl debugger), 149
X command (Perl debugger), 149
-X file test operator, 60
-x file test operator, 60
x (grid geometry manager placeholder), 498
-x option (perl), 33
-x option (place geometry manager), 501
x pattern match modifier, 63, 69
x (string repetition) operator, 63
\x7f (hexadecimal value) sequence, 66
X<> interior sequence (pod), 81
x= (assignment) operator, 60
xgtitle() (Net::NNTP), 432
xhdr command (NNTP), 425
xhdr() (Net::NNTP), 432
X-headers (news articles), 425
XOR (^) operator, bitwise, 62
xover() (Net::NNTP), 432
xpat command (NNTP), 425
xpat() (Net::NNTP), 433
xpath() (Net::NNTP), 433
Xref backend (Perl compiler), 39
xrover() (Net::NNTP), 433
-xscrollcommand option, 505
   Scrollbar widget, 495
-xscrollincrement option (Canvas), 524
xview()
   Canvas widget, 533
   Entry widget, 511
   Listbox widget, 515
   Text widget, 520

Y
-y option (place geometry manager), 501
y// pattern match operator, 64
yposition() (Menu widget), 539
-yscrollcommand option, 506
   Scrollbar widget, 495
-yscrollincrement option (Canvas), 524
yview()
   Listbox widget, 516
   Text widget, 520
yview
   Canvas widget, 533

Z
\Z (string/line end) anchor, 67
\z (string end) anchor, 67
-z file test operator, 60
-z option (dprofpp), 155
Z<> interior sequence (pod), 81

From the B&N Reads Blog

Customer Reviews