Chapter 32. Standard Modules - Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










Chapter 32. Standard Modules


Contents:


Benchmark

Carp

CGI

CGI::Carp

Class::Struct

Config

CPAN

Cwd

Data::Dumper

DB_File

Dumpvalue

English

Errno

Exporter

Fatal

Fcntl

File::Basename

File::Compare

File::Copy

File::Find

File::Glob

File::Spec

File::stat

File::Temp

FileHandle

Getopt::Long

Getopt::Std

IO::Socket

IPC::Open2

IPC::Open3

Math::BigInt

Math::Complex

Math::Trig

Net::hostent

POSIX

Safe

Socket

Symbol

Sys::Hostname

Sys::Syslog

Term::Cap

Text::Wrap

Time::Local

Time::localtime

User::grent

User::pwent


The previous edition of this book included comprehensive, definitive
coverage for all modules that were part of the standard Perl
distribution. But if we did that again now, you'd pay twice what
you're paying for this book, not to mention what you'd have to pay the
chiropractor after trying to carry the book home. Over the last few
years, more and more modules have come bundled standard; we're up to
around two hundred of them right now. Some of these, such as
CGI, have remarkably extensive documentation in
their own right. And if you're using ActiveState's distribution of
Perl, your standard library is even more luxed out.

So instead, we provide a complete listing of the standard modules,
sorted by type, along with a brief description of what each module
does. Then we cherry pick a few of our favorite modules by providing
examples of typical uses, followed by a short description of how they
work, just to give you a taste of using them. The descriptions are
suggestive rather than comprehensive, and virtually all the modules
have features beyond those shown. However, complete documentation for
all standard modules is included with every Perl distribution, so you
can just look up the details on your own system using the
perldoc program, your system's
man(1) command, or your favorite
browser. See the section "Online Documentation" in the Preface. Ask
your Local Expert if you can't find the docs, because they're almost
certainly installed somewhere on your system.
Even if they're not, you can always read the pod docs directly from
the modules themselves, because all module docs come embedded in their
corresponding module (.pm) files, and pod was
designed to be somewhat readable. (Unlike, say, HTML.)

32.1. Listings by Type



Normal module names begin with an uppercase letter. Lowercase names
indicate pragmas that you'll find documented in Chapter 31, "Pragmatic Modules", rather than in this chapter.

32.1.1. Data Types



These modules extend Perl's type system (or lack thereof) in various
ways.














































ModuleDescription
Class::Struct

Create struct-like Perl object classes

constant

Declare constant scalars and lists

integer

Force Perl to do arithmetic with integers instead of floating point

Math::BigFloat

Calculate with arbitrary length floating-point math

Math::BigInt

Calculate with arbitrary length integer math

Math::Complex

Calculate with complex numbers and associated mathematical functions

Math::Trig

Load many trigonometric and related functions

overload

Overload Perl operators on objects

Symbol

Manipulate Perl symbol tables and generate anonymous
typeglobs

Time::Local

Efficiently compute epoch time given localtime or gmtime


32.1.2. String Processing, Language Text Processing, Parsing, and Searching



These modules do things with (or to) text.






























ModuleDescription
Search::Dict

Use a binary search for a string in a sorted text file

Text::Abbrev

Create an abbreviation table from a list

Text::ParseWords

Parse text into a list of tokens or an array of arrays

Text::Soundex

Use Knuth's Soundex algorithm

Text::TabsExpand or unexpand tabs like expand
(1) and unexpand
(1)
Text::Wrap

Wrap lines to form simple paragraphs


32.1.3. Option, Argument, Parameter, and Configuration
File Processing



These modules process your command line.














ModuleDescription
Getopt::Long
Process extended command-line options in long form (--xxx)
Getopt::Std

Process single-character switches with switch clustering (-xyz)


32.1.4. Filenames, Filesystems, and File Locking



These modules provide cross-platform methods of file access.










































































ModuleDescription
Cwd

Get the pathname of the current working directory

File::Basename

Portably parse a pathname into directory, basename, and extension components

File::CheckTree

Run many file test checks on a set of directory trees

File::Compare

Portably compare contents of filenames or filehandles

File::Copy

Portably copy filenames or filehandles or move filenames

File::DosGlob

Do Microsoft-style fileglobbing

File::Find

Traverse a file tree like find(1)

File::Glob

Use Unix-style fileglobbing

File::Path

Portably create or remove a series of directories

File::SpecUse portable filename operations (object-oriented interface)
File::Spec::Functions

Use portable filename operations (functional interface)

File::Spec::Mac

Use filename operations for Mac OS files

File::Spec::OS2

Use filename operations for OS/2 files

File::Spec::Unix

Use filename operations for Unix files

File::Spec::VMS

Use filename operations for VMS files

File::Spec::Win32

Use filename operations for Microsoft files

File::stat

Override built-in stat and lstat functions with a method interface


32.1.5. Filehandle, Directory Handle, and
Stream I/O Utilities


These modules provide object-oriented file, directory, and IPC access.






















































ModuleDescription
DirHandle

Use object methods for directory handles

FileCache

Keep more files concurrently open for output than your system permits

FileHandle

Use object methods for filehandles

IO

Provide a frontend to load all of IO::Dir, IO::File, IO::Handle,
IO::Pipe, IO::Seekable, and IO::Socket

IO::Dir

Use object methods for directory handles

IO::File

Use file-related object methods for filehandles

IO::Handle

Use generic object methods for filehandles

IO::Pipe

Use object methods for pipes

IO::Poll

Provide an object interface to poll(2) syscall

IO::Seekable

Use object methods for seekable I/O objects

IO::Select

Use a convenient OO interface to the select(2) syscall

SelectSaver

Save and restore selected filehandle


32.1.6. Internationalization and Locale


These modules help you perform Un-American Activities.


























ModuleDescription
bytes

Enforce old byte-oriented semantics

charnames

Define character names used in \N{name} escapes in string literals

I18N::Collate

Compare 8-bit scalar data according to current locale
(deprecated)

locale

Use or avoid POSIX locales for built-in operations

utf8

Turn on UTF-8 and Unicode support explicitly


32.1.7. Operating System Interfaces



These modules tweak your interface to the operating system.


























































ModuleDescription
Fcntl

Load the C library's fcntl.h definitions as Perl constants

filetest

Control the file test operators (-r, -w, etc.) for
nontraditional filesystems

open

Set default disciplines for open function calls

POSIX

Use the Perl interface to POSIX 1003.1

Shell

Run shell commands transparently within Perl

sigtrap

Enable simple signal handling

Sys::Hostname

Portably try every conceivable way to determine the current hostname

Sys::Syslog

Use the C library's syslog(3) functions

Time::gmtime

Override the built-in gmtime function with a method interface

Time::localtime

Override the built-in localtime function with a method interface

Time::tm

Provide the internal object used by Time::gmtime and Time::localtime

User::grent

Override built-in getgr* functions with a method interface

User::pwent

Override built-in getpw* functions with a method interface


32.1.8. Networking and Interprocess Communication


These modules provide abstract interfaces around the basic
interfaces we wrote about in Chapter 16, "Interprocess Communication".






























































ModuleDescription
IO::Socket

Use a generic object interface to socket communications

IO::Socket::INET

Use an object interface for Internet-domain sockets

IO::Socket::UNIX

Use an object interface for Unix-domain (local) sockets

IPC::Msg

Use object methods for working with System V messages
(SysV Msg IPC object class)

IPC::Open2

Open a process for simultaneous reading and writing

IPC::Open3

Open a process for reading, writing, and error handling

IPC::Semaphore

Use object methods for System V semaphores

IPC::SysV

Define constants for all System V IPC mechanisms

Net::hostent

Override built-in gethost* functions
with a method interface

Net::netent

Override built-in getnet* functions
with a method interface

Net::Ping

Check a remote host for reachability

Net::protoent

Override built-in getproto* functions
with a method interface

Net::servent

Override built-in getserv* functions
with a method interface

Socket

Load the C library socket.h definitions and structure manipulators


32.1.9. World Wide Web



These modules interface to the WWW. You may have heard of it.


































ModuleDescription
CGI

Access CGI forms and powerful automated HTML generation

CGI::Apache

Make your CGI script work under the Perl-Apache API

CGI::Carp

Write to the httpd(8) (or other) CGI error log

CGI::Cookie

Set and get HTTP cookies

CGI::Fast

Use the Fast CGI protocol

CGI::Pretty

Produce nicely formatted HTML code

CGI::Push

Do server-push CGI scripting


32.1.10. DBM Interfaces


These modules load various database management libraries.


























ModuleDescription
AnyDBM_File

Provide a framework for multiple DBM libraries

DB_File

Provide tied access to the db(3) library (version 1.x Berkeley DB)

GDBM_File

Provide tied access to the gdbm(3) library

NDBM_File

Provide tied access to the ndbm(3) library

SDBM_File

Provide tied access to SDBM (simple DBM) files


32.1.11. User Interfaces



These modules provide a decent OS CLI I/O API, ASAP.


















ModuleDescription
Term::Cap

Use the termcap(3) library

Term::Complete

Do programmable command completion on word lists

Term::ReadLine

Use any of several readline packages


32.1.12. Authentication, Security, and Encryption



These modules work with sandboxes.


















ModuleDescription
Opcode

Enable or disable named opcodes when compiling Perl code
for use with the Safe module

ops

Restrict unsafe operations when compiling

Safe

Compile and execute code in restricted compartments


32.1.13. Perl Language Extensions and Internals


(Not to be confused with Intentions and Externals.)


















































































ModuleDescription
attributes

Get or set subroutine or variable attributes

attrs

Get or set subroutine or variable attributes (obsolete)

base

Establish inheritance of base class at compile time

Data::Dumper

Serialize Perl data structures

DB

Access the Perl debugger's experimental API

Devel::DProf

Profile a Perl program's execution

Devel::Peek

Load data debugging tools for XS programmers

diagnostics

Force verbose warnings and suppress duplicates

Dumpvalue

Provide screen dump of data

English

Use longer variable names for built-in punctuation variables

Env

Access environment variables in %ENV as regular scalars

Errno

Load the C library's errno.h definitions and tie the %! variable

Fatal

Replace built-ins with versions that raise exceptions on failure

fields

Declare compile-time verified access to a class's data attributes

less

Request less of something from Perl (unimplemented)

re

Alter default regular expression behavior

strict

Restrict sloppy constructs

subs

Predeclare the subroutine names in current the package

vars

Predeclare global variables (obsolete--see our in Chapter 29, "Functions")


32.1.14. Convenient Classes



These modules provide base classes and other conveniences.


































ModuleDescription
Tie::Array

Provide a base class for tied arrays

Tie::Handle

Provide base class definitions for tied handles

Tie::Hash

Provide base class definitions for tied hashes

Tie::RefHash

Provide references as hash keys

Tie::Scalar

Provide base class definitions for tied scalars

Tie::SubstrHash

Hash a fixed-size table with a fixed-length key

UNIVERSAL

Provide a base class for all classes (blessed references)


32.1.15. Warnings and Exceptions


What to do when things go rwong.














ModuleDescription
Carp

Provide routines that warn and die from the perspective of the caller

warnings

Control warnings within the lexical scope


32.1.16. Documentation Support


And there's an awful lot of documentation to support.


















































ModuleDescription
Pod::Checker

Check pod documents for syntax errors (used by podchecker(1))

Pod::Functions

List built-in functions by type

Pod::Html

Convert pod files to HTML (used by pod2html(1))

Pod::InputObjects

Manage documentation support

Pod::Man

Convert pod to troff(1) format for the man(1) system (used by pod2man(1))

Pod::Parser

Provide a base class for creating pod filters and translators

Pod::Select

Extract selected sections of pod from input (used by podselect(1))

Pod::Text

Convert pod data to formatted ASCII text
(used by pod2text(1))

Pod::Text::Color

Convert pod data to formatted ASCII text with ANSI color escapes

Pod::Text::Termcap

Convert pod data to ASCII text with terminal-specific escapes

Pod::Usage

Print a usage message derived from embedded pod documentation


32.1.17. Module Installation Support


These modules help other modules jump through various hoops.






























































































































ModuleDescription
AutoLoader

Load subroutines only on demand

AutoSplit

Split a package for autoloading

autouse

Postpone module loading until a function is used from that module

blib

Use the library from MakeMaker's uninstalled version of an extension

Config

Access Perl configuration information

CPAN

Query, download, and build Perl modules from CPAN sites

Devel::SelfStubber

Generate stubs for a module using SelfLoader

DynaLoader

Dynamically load C or C++ libraries as Perl extensions

Exporter

Implement default import method for traditional modules

ExtUtils::Command

Provide utilities to replace common external commands in Makefile

ExtUtils::Embed

Provide utilities for embedding Perl in C or C++ programs

ExtUtils::Install

Install files into the system's Perl library

ExtUtils::Installed

Manage inventory of installed modules

ExtUtils::Liblist

Determine which libraries to use and how to use them

ExtUtils::MakeMaker

Create a Makefile for a Perl extension

ExtUtils::Manifest

Load tools to write and check a MANIFEST file

ExtUtils::Miniperl

Write the C code for perlmain.c

ExtUtils::Mkbootstrap

Create a bootstrap file for use by DynaLoader

ExtUtils::Mksymlists

Write linker options files for dynamic extension

ExtUtils::MM_Cygwin

Override Unix behavior methods in ExtUtils::MakeMaker

ExtUtils::MM_OS2

Override Unix behavior methods in ExtUtils::MakeMaker

ExtUtils::MM_Unix

Provide methods used by ExtUtils::MakeMaker

ExtUtils::MM_VMS

Override Unix behavior methods in ExtUtils::MakeMaker

ExtUtils::MM_Win32

Override Unix behavior methods in ExtUtils::MakeMaker

ExtUtils::Packlist

Manage .packlist files

ExtUtils::testlib

Add blib/* directories to @INC

FindBin

Locate installation directory of the Perl program that is running

lib

Manipulate @INC at compile time

SelfLoader

Load functions only on demand

XSLoader

Dynamically load C or C++ libraries as Perl extensions


32.1.18. Development Support


These modules are for timing and testing, to see how much faster
and cleaner your code doesn't run anymore.


















ModuleDescription
Benchmark

Compare running times of alternate code versions

Test

Use a simple framework for writing test scripts

Test::Harness

Run standard test scripts with statistics


32.1.19. Perl Compiler and Code Generator


These modules support various backend code generators for Perl.










































































ModuleDescription
B

Load Perl code generators (a.k.a. the "Perl compiler")

B::Asmdata

Provide autogenerated data about Perl ops to produce bytecode

B::Assembler

Assemble Perl bytecode

B::Bblock

Walk basic blocks in the syntax tree

B::Bytecode

Use the Perl compiler's bytecode backend

B::C

Use the Perl compiler's C translation backend

B::CC

Use the Perl compiler's optimized C translation backend

B::Debug

Walk the Perl syntax tree, printing debug info about ops

B::Deparse

Use the Perl compiler backend to reproduce Perl code

B::Disassembler

Disassemble Perl bytecode

B::Lint

Catch dubious constructs

B::Showlex

Show lexical variables used in functions or files

B::Stash

Show what stashes are loaded

B::Terse

Walk the Perl syntax tree, printing terse info about ops

B::Xref

Generate cross-reference reports for Perl programs

ByteLoader

Load byte-compiled Perl code

O

Provide a generic interface to Perl compiler backends


32.1.20. Microsoft-Related Modules


If you got the Perl distribution for Microsoft systems from
ActiveState, you already have the following Microsoft-only modules
included for you. If you just grabbed the standard source distribution
(maybe you want to build it under the Cygwin Unix-emulation environment) but you're running on Wintel, you can get all of these modules
from CPAN.














































































































ModuleDescription
Win32::ChangeNotify

Monitor events related to files and directories

Win32::Console

Use Win32 console and character mode functions

Win32::Event

Use Win32 event objects from Perl

Win32::EventLog

Process Win32 event logs from Perl

Win32::File

Manage file attributes in Perl

Win32::FileSecurity

Manage FileSecurity Discretionary Access Control Lists in Perl

Win32::IPC

Load the base class for Win32 synchronization objects

Win32::Internet

Access WININET.DLL functions

Win32::Mutex

Use Win32 mutex objects from Perl

Win32::NetAdmin

Manage network groups and users in Perl

Win32::NetResource

Manage network resources in Perl

Win32::ODBC

Use ODBC Extension for Win32

Win32::OLE

Use OLE automation extensions

Win32::OLE::Const

Extract constant definitions from TypeLib

Win32::OLE::Enum

Use OLE Automation Collection Objects

Win32::OLE::NLS

Use OLE National Language Support

Win32::OLE::Variant

Create and modify OLE VARIANT variables

Win32::PerfLib

Access the Windows NT Performance Counter

Win32::Process

Create and manipulate processes

Win32::Semaphore

Use Win32 semaphore objects

Win32::Service

Manage system services

Win32::Sound

Play with Windows sounds

Win32::TieRegistry

Mung the registry

Win32API::File

Access low-level Win32 system API calls for files and directories

Win32API::Net

Manage Windows NT LanManager accounts

Win32API::Registry

Access low-level Win32 system API calls from WINREG.H






/ 875