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
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

Perl in a Nutshell: A Desktop Quick Reference
762
Perl in a Nutshell: A Desktop Quick Reference
762eBook
Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
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
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 PART 5: Databases Chapter 12. Databases and Perl PART 6: Network Programming Chapter 13. Sockets Chapter 14. Email Connectivity Chapter 15. Usenet News Chapter 16. FTP Chapter 17. The LWP Library PART 7: Perl/Tk Chapter 18. Perl/Tk PART 8: Win32 Chapter 19. Win32 Modules and Extensions Chapter 20. PerlScript Index Symbols A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Design of mod_perl
Installing mod_perl
mod_perl Handlers
Running CGI Scripts with mod_perl
Server-Side Includes with mod_perl
Apache:: Modules
DBM Databases and DBM Hashes
Design of DBI
DBI Methods
DBI Environment Variables
Built-in Socket Functions
The IO::Socket Module
The Net Modules
The Mail Modules
The NNTP Protocol
Net::NNTP
The News::Newsrc Module
The FTP Protocol
Net::FTP
FTP Configuration with Net::Netrc
LWP Overview
The LWP Modules
The HTTP Modules
The HTML Module
The URI Module
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
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
Client-Side PerlScript
Server-Side PerlScript
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 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 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, 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 (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 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 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 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 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 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
JavaScript features with CGI.pm, 334
Johnson, Kevin, 390, 402
join(), 107
-jump option (Scrollbar), 512
-justify option (widgets), 504
-k file test operator, 60
keys(), 108
keywords() (CGI.pm), 342
Kill() (Win32::Process), 585
kill(), 108
Koenig, Andreas, 10
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 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 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 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 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 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 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 (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 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 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 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 (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 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 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 (string/line end) anchor, 67
\z (string end) anchor, 67
-z file test operator, 60
-z option (dprofpp), 155
Z<> interior sequence (pod), 81