Standard Modules

Contents:
AnyDBM_File
attrs
AutoLoader
AutoSplit
autouse
B
Asmdata
Assembler
Bblock
Bytecode
C
CC
Debug
Deparse
Disassembler
Lint
Showlex
Stackobj
Terse
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
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

We've talked about the extent to which Perl benefits from user contributions. In fact, many contributed modules are so generally useful that they are now distributed with Perl itself. This chapter describes these "standard modules"-if you are running Perl 5.005, all these modules are already available to you. If you are running an earlier version of Perl, and you find that a module you want isn't on your system, or if you simply don't find what you need among the modules in this chapter, check CPAN for one that does what you want.

While this chapter primarily covers standard Perl modules called at execution time from your program, it also covers the "pragmatic" modules that affect the compilation phase. (A pragma is a compiler directive that provides hints to the compiler.) By convention, the names of the pragmatic modules are all lowercase, while the names of other modules begin with an uppercase letter and are of mixed case.

The Win32-specific modules are not included in this chapter, but are described in Win32 Modules and Extensions.

The following table provides a quick look at the standard modules and what they do:

Module Function
AnyDBM_File Provides framework for multiple DBMs
attrs Sets or gets attributes of a subroutine
AutoLoader Loads functions only on demand
AutoSplit Splits a module for autoloading
autouse Postpones load of modules until a function is used
B Perl compiler and tools
base Establishes IS-A relationship with base class at compile time
Benchmark Checks and compares running times of code
blib Uses MakeMaker's uninstalled version of a package
Carp Generates error messages
CGI Simple Common Gateway Interface class
CGI::Apache Sets up environment to use CGI with Perl-Apache API
CGI::Carp CGI routines for writing to HTTPD (or other) error log
CGI::Cookie CGI interface to Netscape (HTTP/1.1) cookies
CGI::Fast CGI interface for FastCGI
CGI::Push Interface for server push operations
CGI::Switch Tries multiple constructors and returns the first available CGI object
Class::Struct Declares struct-like datatypes as Perl classes
Config Accesses Perl configuration information
constant Perl pragma to declare constants
CPAN Queries, downloads, and builds Perl modules from CPAN sites
CPAN::FirstTime Utility for CPAN::Config file initialization
CPAN::Nox Wrapper around CPAN.pm without using any XS module
Cwd Gets pathname of current working directory
Data::Dumper Returns Perl data structures as strings
DB_File Accesses Berkeley DB
Devel::SelfStubber Generates stubs for a selfloading module
diagnostics Forces verbose warning diagnostics
DirHandle Supplies object methods for directory handles
DynaLoader Automatic dynamic loading of Perl modules
English Uses English or awk names for punctuation variables
Env Imports environment variables
Errno System errno constants from errno.h include file
Exporter Default import method for modules
ExtUtils::Command Utilities to replace common Unix commands
ExtUtils::Embed Utilities for embedding Perl in C/C++ applications
ExtUtils::Install Installs files from here to there
ExtUtils::Installed Inventory management of installed modules
ExtUtils::Liblist Determines libraries to use and how to use them
ExtUtils::MakeMaker Creates a Makefile for a Perl extension
ExtUtils::Manifest Utilities to write and check a MANIFEST file
ExtUtils::Miniperl Writes the C code for perlmain.c
ExtUtils::Mkbootstrap Makes a bootstrap file for use by DynaLoader
ExtUtils::Mksymlists Writes linker option files for dynamic extension
ExtUtils::MM_OS2 Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::MM_Unix Methods used by ExtUtils::MakeMaker
ExtUtils::MM_VMS Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::MM_Win32 Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::Packlist Manages .packlist files
ExtUtils::testlib Adds blib/* directories to @INC
Fatal Replaces functions with equivalents that succeed or die
Fcntl Loads the C fcntl.h defines
fields Perl pragma to provide compile-time verified class fields
File::Basename Parses file specifications
File::CheckTree Runs many tests on a collection of files
File::Compare Compares files or filehandles
File::Copy Copies files or filehandles
File::DosGlob DOS-like globbing with enhancements
File::Find Traverses a file tree
File::Path Creates or removes a series of directories
File::Spec Portably performs operations on filenames
File::stat By-name interface to Perl's built-in stat functions
FileCache Keeps more files open than the system permits
FileHandle Supplies object methods for filehandles
FindBin Locates directory of original Perl script
GDBM_File Tied access to GDBM library
Getopt::Long Extended processing of command-line options
Getopt::Std Processes single-character options with option clustering
Collate Compares 8-bit scalar data according to the current locale
integer Does arithmetic in integer instead of double
IO Loads various IO modules
IO::File Supplies object methods for filehandles
IO::Handle Supplies object methods for I/O handles
IO::Pipe Supplies object methods for pipes
IO::Seekable Supplies seek-based methods for I/O objects
IO::Select Object-oriented interface to the select system call
IO::Socket Object interface to socket communications
IPC::Msg System V Msg IPC object class
IPC::Open2 Opens a process for both reading and writing
IPC::Open3 Opens a process for reading, writing, and error handling
IPC::Semaphore System V Semaphore IPC object class
IPC::SysV System V IPC constants
less Perl pragma to request less of something from the compiler
lib Manipulates @INC at compile time
locale Perl pragma to use and avoid POSIX locales for built-in operations
Math::BigFloat Arbitrary-length floating-point math package
Math::BigInt Arbitrary-length integer math package
Math::Complex Complex numbers package
Math::Trig Trigonometric functions
NDBM_File Tied access to NDBM files
Net::hostent By-name interface to Perl's built-in gethost* functions
Net::netent By-name interface to Perl's built-in getnet* functions
Net::Ping Checks whether a host is online
Net::protoent By-name interface to Perl's built-in getproto* functions
Net::servent By-name interface to Perl's built-in getserv* functions
ODBM_File Tied access to ODBM files
Opcode Disables named opcodes when compiling Perl code
ops Restricts unsafe operations when compiling
overload Overloads Perl's mathematical operations
Pod::Functions Used in converting from pod to HTML
Pod::Html Module to convert pod files to HTML
Pod::Text Converts pod data to formatted ASCII text
POSIX Perl interface to IEEE Std 1003.1
re Perl pragma to alter regular expression behavior
Safe Creates safe namespaces for evaluating Perl code
SDBM_File Tied access to SDBM files
Search::Dict Searches for key in dictionary file
SelectSaver Saves and restores selected filehandle
SelfLoader Loads functions only on demand
Shell Runs shell commands transparently within Perl
sigtrap Enables stack backtrace on unexpected signals
Socket Loads the C socket.h defines and structure manipulators
strict Restricts unsafe constructs
subs Predeclares subroutine names
Symbol Generates anonymous globs; qualifies variable names
Sys::Hostname Tries every conceivable way to get hostname
Sys::Syslog Perl interface to Unix syslog(3) calls
Term::Cap Terminal capabilities interface
Term::Complete Word completion module
Term::ReadLine Interface to various ReadLine packages
Test Framework for writing test scripts
Test::Harness Runs Perl standard test scripts with statistics
Text::Abbrev Creates an abbreviation table from a list
Text::ParseWords Parses text into a list of tokens
Text::Soundex The soundex algorithm described by Knuth
Text::Tabs Expands and unexpands tabs
Text::Wrap Wraps text into a paragraph
Thread Multithreading support
Thread::Queue Thread-safe queues
Thread::Semaphore Thread-safe semaphores
Thread::Signal Starts a thread that runs signal handlers reliably
Thread::Specific Thread-specific keys
Tie::Array Base class definitions for tied arrays
Tie::Handle Base class definitions for tied handles
Tie::Hash, Tie::StdHash Base class definitions for tied hashes
Tie::RefHash Uses references as hash keys
Tie::Scalar, Tie::StdScalar Base class definitions for tied scalars
Tie::SubstrHash Fixed-table-size, fixed-key-length hashing
Time::gmtime By-name interface to Perl's built-in gmtime function
Time::Local Computes time from local and GMT time
Time::localtime By-name interface to Perl's built-in localtime function
Time::tm Internal object used by Time::gmtime and Time::localtime
UNIVERSAL Base class for all classes (blessed references)
User::grent By-name interface to Perl's built-in getgr* functions
User::pwent By-name interface to Perl's built-in getpw* functions
vars Predeclares global variable names
vmsish Enables VMS-specific language features

In the remainder of this chapter, the modules are arranged in alphabetical order for easy reference. For more detail about a module, use the perldoc command to read the manpage for that module (see The Perl Language, for information on perldoc).

AnyDBM_File

Provides a single DBM (Database Manager) interface regardless of the DBM implementation you use. The module inherits from the various DBM packages; by default, it inherits from NDBM_File. If it doesn't find NDBM_File, the default search order is: DB_File, GDBM_File, SDBM_File (which comes with Perl), and finally ODBM_File. You can override this default order by redefining @ISA:

@AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File);


However, an explicit use takes priority over the @ISA ordering.

Perl's dbmopen function actually just calls tie to bind a hash to AnyDBM_File. The effect is to bind the hash to one of the specific DBM classes that AnyDBM_File inherits from.