[Appendix B] B.2 Standard Modules
Author: Randal L. Schwartz, Erik Olson & Tom Christiansen
Date: 1999-07-02T01:38:02Z

#

| Appendix B Libraries and Modules |

## B.2 Standard Modules

The following is a list of all Perl pragmas and modules included with the current Perl distribution (version 5.004). Modules new to 5.004 are italicized. The classification of the modules is admittedly arbitrary, and not all of them are applicable to Windows NT systems.

### B.2.1 General Programming: Miscellaneous

autouse

  Defers loading of a module until it's used

constant

  Creates compile-time constants

Benchmark

  Checks and compares running times of code

Config

  Accesses Perl configuration information

Env

  Imports environment variables

English

  Uses English or awk names for punctuation variables

FindBin

  Finds path of currently executing program

Getopt::Long

  Provides extended processing of command-line options

Getopt::Std

  Processes single-character switches with switch clustering

lib

  Manipulates @INC at compile time

Shell

  Runs shell commands transparently within Perl

strict

  Restricts unsafe constructs

Symbol

  Generates anonymous globs; qualifies variable names

subs

  Predeclares subroutine names

vars

  Predeclares global variable names

### B.2.2 General Programming: Error Handling and Logging

Carp

  Generates error messages

diagnostics

  Forces verbose warning diagnostics

sigtrap

  Enables stack backtrace on unexpected signals

Sys::Syslog

  Provides Perl interface to UNIX syslog (3) calls

### B.2.3 General Programming: File Access and Handling

Cwd

  Gets pathname of current working directory

DirHandle

  Supplies object methods for directory handles

Fcntl

  Loads the C Fcntl.h defines

File::Basename

  Parses file specifications

File::CheckTree

  Runs many tests on a collection of files

File::Copy

  Copies files or filehandles

File::Find

  Traverses a file tree

File::Path

  Creates or removes a series of directories

FileCache

  Keeps more files open than the system permits

FileHandle

  Supplies object methods for filehandles

SelectSaver

  Saves and restores selected filehandles

### B.2.4 General Programming: Classes for I/O Operations

IO

  Top-level interface to IO::* classes

IO::File

  Object methods for filehandles

IO::Handle

  Object methods for I/O handles

IO::Pipe

  Object methods for pipes

IO::Seekable

  Seek-based methods for I/O objects

IO::Select

  Object interface to select

IO::Socket

  Object interface to sockets

### B.2.5 General Programming: Text Processing and Screen Interfaces

locale

  Uses POSIX locales for built-in operations

Pod::HTML

  Converts POD data to HTML

Pod::Text

  Converts POD data to formatted ASCII text

Search::Dict

  Searches for key in dictionary file

Term::Cap

  Interfaces termcap

Term::Complete

  Word-completion module

Text::Abbrev

  Creates an abbreviation table from a list

Text::ParseWords

  Parses text into an array of tokens

Text::Soundex

  Implements the Soundex Algorithm described by Knuth

Text::Tabs

  Expands and unexpands tabs

Text::Wrap

  Wraps text into a paragraph

### B.2.6 Database Interfaces

AnyDBM_File

  Provides framework for multiple DBMs

DB_File

  Provides access to Berkeley DB

GDBM_File

  Provides tied access to GDBM library

NDBM_File

  Provides tied access to NDBM files

ODBM_File

  Provides tied access to ODBM files

SDBM_File

  Provides tied access to SDBM files

### B.2.7 Mathematics

Integer

  Does integer arithmetic instead of double precision

Math::BigFloat

  Provides arbitrary-length, floating-point math package

Math::BigInt

  Provides arbitrary-length integer math package

Math::Complex

  Provides complex numbers package

### B.2.8 The World Wide Web

CGI

  Interfaces web server (Common Gateway Interface)

CGI::Apache

  Supports Apache's Perl module

CGI::Carp

  Details log server errors with helpful context

CGI::Fast

  Supports FastCGI (persistent server process)

CGI::Push

  Supports server push

CGI::Switch

  Provides simple interface for multiple server types

### B.2.9 Networking and Interprocess Communication

IPC::Open2

  Opens a process for both reading and writing

IPC::Open3

  Opens a process for reading, writing, and error handling

Net::Ping

  Checks whether a host is online

Socket

  Loads the C socket.h defines and structure manipulators

Sys::Hostname

  Tries every conceivable way to get hostname

### B.2.10 Automated Access to the Comprehensive Perl Archive Network

CPAN

  Provides simple interface to CPAN

CPAN::FirstTime

  Provides utility for creating CPAN configuration file

CPAN::Nox

  Runs CPAN while avoiding compiled extensions

### B.2.11 Time and Locale

Time::Local

  Efficiently computes time from local and GMT time

I18N::Collate

  Compares 8-bit scalar data according to the current locale

### B.2.12 Object Interfaces to Built-in Functions

Class::Struct

  Declares struct-like datatypes as Perl classes

File::stat

  Provides object interface to `stat` function

Net::hostent

  Provides object interface to `gethost*` functions

Net::netent

  Provides object interface to `getnet*` functions

Net::protoent

  Provides object interface to `getproto*` functions

Net::servent

  Provides object interface to `getserv*` functions

Time::gmtime

  Provides object interface to `gmtime` function

Time::localtime

  Provides object interface to `localtime` function

Time::tm

  Provides internal object for `Time::{gm,local}time`

User::grent

  Provides object interface to `getgr*` functions

User::pwent

  Provides object interface to `getpw*` functions

### B.2.13 For Developers: Autoloading and Dynamic Loading

AutoLoader

  Loads functions only on demand

AutoSplit

  Splits a package for autoloading

Devel::SelfStubber

  Generates stubs for a `SelfLoading` module

DynaLoader

  Provides automatic dynamic loading of Perl modules

SelfLoader

  Loads functions only on demand

### B.2.14 For Developers: Language Extensions and Platform Development Support

blib

  Finds blib directory structure during module builds

ExtUtils::Embed

  Provides utilities for embedding Perl in C programs

ExtUtils::Install

  Installs files from here to there

ExtUtils::Liblist

  Determines libraries to use and how to use them

ExtUtils::MakeMaker

  Creates a Makefile for a Perl extension

ExtUtils::Manifest

  Provides 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

  Provides methods to override UNIX behavior in `ExtUtils::MakeMaker`

ExtUtils::MM_Unix

  Provides methods used by `ExtUtils::MakeMaker`

ExtUtils::MM_VMS

  Provides methods to override UNIX behavior in `ExtUtils::MakeMaker`

ExtUtils::testlib

  Fixes @INC to use just-built extension

Opcode

  Disables opcodes when compiling Perl code

ops

  Provides pragma for use with Opcode module

POSIX

  Interfaces to IEEE Std 1003.1

Safe

  Creates safe namespaces for evaluating Perl code

Test::Harness

  Runs Perl standard test scripts with statistics

vmsish

  Enables VMS-specific features

### B.2.15 For Developers: Object-Oriented Programming Support

Exporter

  Provides default import method for modules

overload

  Overloads Perl's mathematical operations

Tie::RefHash

  Provides base-class definitions for tied hashes with references as keys

Tie::Hash

  Provides base-class definitions for tied hashes

Tie::Scalar

  Provides base-class definitions for tied scalars

Tie::StdHash

  Provides base-class definitions for tied hashes

Tie::StdScalar

  Provides base-class definitions for tied scalars

Tie::SubstrHash

  Provides fixed-table-size, fixed-key-length hashing

UNIVERSAL

  Provides base-class definitions for all classes

B.1 Library Terminology |  | B.3 CPAN: Beyond the Standard Library