Chapter 8. Standard Modules

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 Chapter 19.

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

Module

Function

AnyDBM_File

Provides framework for multiple DBMs

Attribute::Handlers

Simpler definition of attribute handlers (new in 5.8)

attributes

Sets or gets attributes of a subroutine

attrs

Sets or gets attributes of a subroutine (deprecated)

AutoLoader

Loads functions only on demand

AutoSplit

Splits a module for autoloading

autouse

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

bigint

Transparent big integer support for Perl (new in 5.8)

bignum

Transparent BigNumber support for Perl (new in 5.8)

bigrat

Transparent BigNumber/BigRational support for Perl (new in 5.8)

blib

Uses MakeMaker’s uninstalled version of a package

bytes

Perl pragma to force byte semantics rather than character semantics

ByteLoader

Loads byte-compiled Perl code

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

Module to produce nicely formatted HTML code

CGI::Push

Interface for server push operations

CGI::Switch

Tries multiple constructors and returns the first available CGI object

charnames

Defines character names for N{named} string literal escape

Class::ISA

Reports the search path for a class’s ISA tree (new in 5.8)

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

Programmatic interface to the Perl debugging API

DB_File

Accesses Berkeley DB

Devel::DProf

Perl Code Profiler

Devel::PPPort

Module that assists with module porting between Perl versions

Devel::SelfStubber

Generates stubs for a self-loading module

diagnostics

Forces verbose warning diagnostics

Digest

Modules that calculate message digests (new in 5.8)

Digest::MD5

Perl interface to the MD5 Algorithm (new in 5.8)

DirHandle

Supplies object methods for directory handles

Dumpvalue

Provides a screen dump of Perl data

DynaLoader

Automatic dynamic loading of Perl modules

encoding

Allows you to write your script in nonasii or nonutf8 (new in 5.8)

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::Command::MM

Commands that the MM’s can use in Makefiles (new in 5.8)

ExtUtils::Constant

Generates XS code to import C header constants (new in 5.8)

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

Operating system-adjusted ExtUtils::MakeMaker subclass (new in 5.8)

ExtUtils::MM_Any

Platform-agnostic MM methods (new in 5.8)

ExtUtils::MM_BeOS

Methods that override UN*X behavior in ExtUtils::MakeMaker (new in 5.8)

ExtUtils::MM_DOS

DOS-specific subclass of ExtUtils::MM_Unix (new in 5.8)

ExtUtils::MM_NW5

Methods that override UN*X behavior in ExtUtils::MakeMaker (new in 5.8)

ExtUtils::MM_OS2

Methods to override Unix behavior in ExtUtils::MakeMaker

ExtUtils::MM_Unix

Methods used by ExtUtils::MakeMaker

ExtUtils::MM_UWIN

U/WIN-specific subclass of ExtUtils::MM_Unix (new in 5.8)

ExtUtils::MM_VMS

Methods to override Unix behavior in ExtUtils::MakeMaker

ExtUtils::MM_Win32

Methods to override Unix behavior in ExtUtils::MakeMaker

ExtUtils::MY

ExtUtils::MakeMaker subclass for customization (new in 5.8)

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::Spec::Cygwin

Methods for Cygwin file specs (new in 5.8)

File::stat

By-name interface to Perl’s built-in stat functions

File::Temp

Returns the name and handle of a temporary file safely

FileCache

Keeps more files open than the system permits

FileHandle

Supplies object methods for filehandles

Filter::Simple

Simplified source filtering (new in 5.8)

Filter::Util::Call

Perl Source Filter Utility Module (new in 5.8)

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

Hash::Util

A selection of general utility hash subroutines (new in 5.8)

I18N::Collate

Compares 8-bit scalar data according to the current locale

I18N::Langinfo

Queries locale information (new in 5.8)

I18N::LangTags

Functions for dealing with RFC3066-style language tags (new in 5.8)

I18N::LangTags::List

Tags and names for human languages (new in 5.8)

if

Uses a Perl module if a condition holds (new in 5.8)

integer

Does arithmetic in integer instead of double

IO

Loads various I/O 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

List::Util

A selection of general utility list subroutines (new in 5.8)

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::BigInt::Calc

Pure Perl module to support Math::BigInt (new in 5.8)

Math::BigRat

Arbitrarily big rationals (new in 5.8)

Math::Complex

Complex numbers package

Math::Trig

Trigonometric functions

MIME::Base64

Encoding and decoding of base64 strings (new in 5.8)

MIME::QuotedPrint

Encoding and decoding of quoted, printable strings (new in 5.8)

NDBM_File

Tied access to NDBM files

Net::Cmd

Network Command class (new in 5.8)

Net::Config

Local configuration data for libnet (new in 5.8)

Net::Domain

Attempts to evaluate the current host’s Internet name and domain (new in 5.8)

Net::FTP

FTP Client class (new in 5.8)

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

OO interface to user’s netrc file (new in 5.8)

Net::NNTP

NNTP Client class (new in 5.8)

Net::Ping

Checks whether a host is online

Net::POP3

Post Office Protocol 3 Client class (new in 5.8)

Net::protoent

By-name interface to Perl’s built-in getproto* functions

Net::servent

By-name interface to Perl’s built-in getserv* functions

Net::SMTP

Simple Mail Transfer Protocol Client class (new in 5.8)

Net::Time

Time and daytime network client interface (new in 5.8)

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

PerlIO

On-demand loader for PerlIO layers and root of PerlIO::* namespace (added in 5.8)

PerlIO::Scalar

Support module for in-memory I/O (new in 5.8)

PerlIO::Via

Helper class for PerlIO layers implemented in Perl (new in 5.8)

Pod::Functions

Used in converting from pod to HTML

Pod::Html

Module to convert pod files to HTML

Pod::ParseLink

Parses link-formatting code in POD documents (new in 5.8)

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

Scalar::Util

A selection of general-utility scalar subroutines (new in 5.8)

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

sort

Perl pragma that controls sort behavior (new in 5.8)

Storable

Persistence for Perl data structures (new in 5.8)

strict

Restricts unsafe constructs

subs

Predeclares subroutine names

Switch

A switch statement for Perl (new in 5.8)

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

Backend for building text libraries (new in 5.8)

Test::Harness

Runs Perl standard test scripts with statistics

Test::More

Yet another framework for writing test scripts (new in 5.8)

Test::Simple

Basic utilities for writing tests (new in 5.8)

Text::Abbrev

Creates an abbreviation table from a list

Text::Balanced

Extracts delimited text sequences from strings (new in 5.8)

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

Accesses the lines of a disk file via a Perl array (new in 5.8)

Tie::Handle

Base class definitions for tied handles

Tie::Hash

Base class definitions for tied hashes

Tie::Memoize

Adds data to a hash when needed (new in 5.8)

Tie::RefHash

Uses references as hash keys

Tie::Scalar

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

High-resolution alarm, sleep, gettimeofday, interval timers (new in 5.8)

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

utf8

Perl pragma to enable/disable UTF-8 in source code

vars

Predeclares global variable names

vmsish

Perl pragma that controls VMS-specific language features (new in 5.8)

XS::Typemap

Module that tests the XS typemaps distributed with Perl (new in 5.8)

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 Chapter 4 for information on perldoc).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.156.122