=head2 Pragmatic Modules They work somewhat like pragmas in that they tend to affect the compilation of your program, and thus will usually work well only when used within a C, or C. Most of these are lexically scoped, so an inner BLOCK may countermand any of these by saying: no integer; no strict 'refs'; which lasts until the end of that BLOCK. Unlike the pragmas that effect the C hints variable, the C and C declarations are not BLOCK-scoped. They allow you to predeclare a variables or subroutines within a particular I rather than just a block. Such declarations are effective for the entire file for which they were declared. You cannot rescind them with C or C. The following pragmas are defined (and have their own documentation). =over 12 =item * B qw(sub1 sub2 sub3) >> >>> - Defers C until someone calls one of the specified subroutines (which must be exported by MODULE). This pragma should be used with caution, and only when necessary. =item * B> >>> - manipulate @INC at compile time to use MakeMaker's uninstalled version of a package =item * B> >>> - force verbose warning diagnostics =item * B> >>> - compute arithmetic in integer instead of double =item * B> >>> - request less of something from the compiler =item * B> >>> - manipulate @INC at compile time =item * B> >>> - use or ignore current locale for builtin operations (see L) =item * B> >>> - restrict named opcodes when compiling or running Perl code =item * B> >>> - overload basic Perl operations =item * B> >>> - alter behaviour of regular expressions =item * B> >>> - enable simple signal handling =item * B> >>> - restrict unsafe constructs =item * B> >>> - predeclare sub names =item * B> >>> - adopt certain VMS-specific behaviors =item * B> >>> - predeclare global variable names =back =head2 Standard Modules Standard, bundled modules are all expected to behave in a well-defined manner with respect to namespace pollution because they use the Exporter module. See their own documentation for details. =over 12 =item * B> >>> - provide framework for multiple DBMs =item * B> >>> - load functions only on demand =item * B> >>> - split a package for autoloading =item * B> >>> - benchmark running times of code =item * B> >>> - interface to Comprehensive Perl Archive Network =item * B> >>> - create a CPAN configuration file =item * B> >>> - run CPAN while avoiding compiled extensions =item * B> >>> - warn of errors (from perspective of caller) =item * B> >>> - declare struct-like datatypes =item * B> >>> - access Perl configuration information =item * B> >>> - get pathname of current working directory =item * B> >>> - access to Berkeley DB =item * B> >>> - generate stubs for a SelfLoading module =item * B> >>> - supply object methods for directory handles =item * B> >>> - dynamically load C libraries into Perl code =item * B> >>> - use nice English (or awk) names for ugly punctuation variables =item * B> >>> - import environment variables =item * B> >>> - implements default import method for modules =item * B> >>> - utilities for embedding Perl in C/C++ applications =item * B> >>> - install files from here to there =item * B> >>> - determine libraries to use and how to use them =item * B> >>> - methods to override Unix behaviour in ExtUtils::MakeMaker =item * B> >>> - methods used by ExtUtils::MakeMaker =item * B> >>> - methods to override Unix behaviour in ExtUtils::MakeMaker =item * B> >>> - create an extension Makefile =item * B> >>> - utilities to write and check a MANIFEST file =item * B> >>> - make a bootstrap file for use by DynaLoader =item * B> >>> - write linker options files for dynamic extension =item * B> >>> - add blib/* directories to @INC =item * B> >>> - make errors in builtins or Perl functions fatal =item * B> >>> - load the C Fcntl.h defines =item * B> >>> - split a pathname into pieces =item * B> >>> - run many filetest checks on a tree =item * B> >>> - compare files or filehandles =item * B> >>> - copy files or filehandles =item * B> >>> - traverse a file tree =item * B> >>> - create or remove a series of directories =item * B> >>> - portably perform operations on file names =item * B> >>> - function call interface to File::Spec module =item * B> >>> - by-name interface to Perl's builtin stat() functions =item * B> >>> - keep more files open than the system permits =item * B> >>> - supply object methods for filehandles =item * B> >>> - locate directory of original Perl script =item * B> >>> - access to the gdbm library =item * B> >>> - extended processing of command line options =item * B> >>> - process single-character switches with switch clustering =item * B> >>> - compare 8-bit scalar data according to the current locale =item * B> >>> - load various IO modules =item * B> >>> - supply object methods for filehandles =item * B> >>> - supply object methods for I/O handles =item * B> >>> - supply object methods for pipes =item * B> >>> - supply seek based methods for I/O objects =item * B> >>> - OO interface to the select system call =item * B> >>> - object interface to socket communications =item * B> >>> - open a process for both reading and writing =item * B> >>> - open a process for reading, writing, and error handling =item * B> >>> - arbitrary length float math package =item * B> >>> - arbitrary size integer math package =item * B> >>> - complex numbers and associated mathematical functions =item * B> >>> - simple interface to parts of Math::Complex for those who need trigonometric functions only for real numbers =item * B> >>> - tied access to ndbm files =item * B> >>> - Hello, anybody home? =item * B> >>> - by-name interface to Perl's builtin gethost*() functions =item * B> >>> - by-name interface to Perl's builtin getnet*() functions =item * B> >>> - by-name interface to Perl's builtin getproto*() functions =item * B> >>> - by-name interface to Perl's builtin getserv*() functions =item * B> >>> - disable named opcodes when compiling or running Perl code =item * B> >>> - convert POD data to formatted ASCII text =item * B> >>> - interface to IEEE Standard 1003.1 =item * B> >>> - tied access to sdbm files =item * B> >>> - compile and execute code in restricted compartments =item * B> >>> - search for key in dictionary file =item * B> >>> - save and restore selected file handle =item * B> >>> - load functions only on demand =item * B> >>> - run shell commands transparently within Perl =item * B> >>> - load the C socket.h defines and structure manipulators =item * B> >>> - manipulate Perl symbols and their names =item * B> >>> - try every conceivable way to get hostname =item * B> >>> - interface to the Unix syslog(3) calls =item * B> >>> - termcap interface =item * B> >>> - word completion module =item * B> >>> - interface to various C packages =item * B> >>> - run Perl standard test scripts with statistics =item * B> >>> - create an abbreviation table from a list =item * B> >>> - parse text into an array of tokens =item * B> >>> - implementation of the Soundex Algorithm as described by Knuth =item * B> >>> - expand and unexpand tabs per the Unix expand(1) and unexpand(1) =item * B> >>> - line wrapping to form simple paragraphs =item * B> >>> - base class definitions for tied hashes =item * B> >>> - base class definitions for tied hashes with references as keys =item * B> >>> - base class definitions for tied scalars =item * B> >>> - fixed-table-size, fixed-key-length hashing =item * B> >>> - efficiently compute time from local and GMT time =item * B> >>> - by-name interface to Perl's builtin gmtime() function =item * B> >>> - by-name interface to Perl's builtin localtime() function =item * B> >>> - internal object used by Time::gmtime and Time::localtime =item * B> >>> - base class for ALL classes (blessed references) =item * B> >>> - by-name interface to Perl's builtin getgr*() functions =item * B> >>> - by-name interface to Perl's builtin getpw*() functions =back