They work somewhat like compiler directives (pragmata) in that they tend to affect the compilation of your program, and thus will usually work well only when used within a use
, or no
. Most of these are lexically scoped, so an inner BLOCK may countermand them by saying:
no integer;
no strict 'refs';
no warnings;
which lasts until the end of that BLOCK.
Some pragmas are lexically scoped--typically those that affect the $^H
hints variable. Others affect the current package instead, like use vars
and use subs
, which allow you to predeclare a variables or subroutines within a particular file rather than just a block. Such declarations are effective for the entire file for which they were declared. You cannot rescind them with no vars
or no subs
.
The following pragmas are defined (and have their own documentation).
attributes - Get/set subroutine or variable attributes
attrs - Set/get attributes of a subroutine (deprecated)
autouse - Postpone load of modules until a function is used
base - Establish IS-A relationship with base class at compile time
blib - Use MakeMaker's uninstalled version of a package
bytes - Force byte semantics rather than character semantics
charnames - Define character names for \N{named}
string literal escape.
constant - Declare constants
diagnostics - Perl compiler pragma to force verbose warning diagnostics
fields - Compile-time class fields
filetest - Control the filetest permission operators
if - use
a Perl module if a condition holds
integer - Use integer arithmetic instead of floating point
less - Request less of something from the compiler
lib - Manipulate @INC at compile time
lib - Manipulate @INC at compile time
locale - Use and avoid POSIX locales for built-in operations
open - Set default disciplines for input and output
ops - Restrict unsafe operations when compiling
overload - Package for overloading perl operations
re - Alter regular expression behaviour
sigtrap - Enable simple signal handling
strict - Restrict unsafe constructs
subs - Predeclare sub names
utf8 - Enable/disable UTF-8 in source code
vars - Predeclare global variable names (obsolete)
warnings - Control optional warnings
warnings::register - Warnings import function
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.
It's possible that not all modules listed below are installed on your system. For example, the GDBM_File module will not be installed if you don't have the gdbm library.
AnyDBM_File - Provide framework for multiple DBMs
AutoLoader - Load subroutines only on demand
AutoSplit - Split a package for autoloading
B - The Perl Compiler
B::Asmdata - Autogenerated data about Perl ops, used to generate bytecode
B::Assembler - Assemble Perl bytecode
B::Bblock - Walk basic blocks
B::Bytecode - Perl compiler's bytecode backend
B::C - Perl compiler's C backend
B::CC - Perl compiler's optimized C translation backend
B::Concise - Walk Perl syntax tree, printing concise info about ops
B::Debug - Walk Perl syntax tree, printing debug info about ops
B::Deparse - Perl compiler backend to produce perl code
B::Disassembler - Disassemble Perl bytecode
B::Lint - Perl lint
B::Showlex - Show lexical variables used in functions or files
B::Stackobj - Helper module for CC backend
B::Stash - Show what stashes are loaded
B::Terse - Walk Perl syntax tree, printing terse info about ops
B::Xref - Generates cross reference reports for Perl programs
Benchmark - Benchmark running times of Perl code
ByteLoader - Load byte compiled perl code
CGI - Simple Common Gateway Interface Class
CGI::Apache - Backward compatibility module for CGI.pm
CGI::Carp - CGI routines for writing to the HTTPD (or other) error log
CGI::Cookie - Interface to Netscape Cookies
CGI::Fast - CGI Interface for Fast CGI
CGI::Pretty - Module to produce nicely formatted HTML code
CGI::Push - Simple Interface to Server Push
CGI::Switch - Backward compatibility module for defunct CGI::Switch
CGI::Util - Internal utilities used by CGI module
CPAN - Query, download and build perl modules from CPAN sites
CPAN::FirstTime - Utility for CPAN::Config file Initialization
CPAN::Nox - Wrapper around CPAN.pm without using any XS module
Carp - Warn of errors (from perspective of caller)
Carp::Heavy - Carp guts
Class::Struct - Declare struct-like datatypes as Perl classes
Config - Access Perl configuration information
Cwd - Get pathname of current working directory
DB - Programmatic interface to the Perl debugging API (draft, subject to
DB_File - Perl5 access to Berkeley DB version 1.x
Data::Dumper - Stringified perl data structures, suitable for both printing and eval
Devel::DProf - A Perl code profiler
Devel::Peek - A data debugging tool for the XS programmer
Devel::SelfStubber - Generate stubs for a SelfLoading module
DirHandle - Supply object methods for directory handles
Dumpvalue - Provides screen dump of Perl data.
DynaLoader - Dynamically load C libraries into Perl code
English - Use nice English (or awk) names for ugly punctuation variables
Env - Perl module that imports environment variables as scalars or arrays
Errno - System errno constants
Exporter - Implements default import method for modules
Exporter::Heavy - Exporter guts
ExtUtils::Command - Utilities to replace common UNIX commands in Makefiles etc.
ExtUtils::Command::MM - Commands for the MM's to use in Makefiles
ExtUtils::Embed - Utilities for embedding Perl in C/C++ applications
ExtUtils::Install - Install files from here to there
ExtUtils::Installed - Inventory management of installed modules
ExtUtils::Liblist - Determine libraries to use and how to use them
ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass
ExtUtils::MM_Any - Platform-agnostic MM methods
ExtUtils::MM_BeOS - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_Cygwin - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_DOS - DOS specific subclass of ExtUtils::MM_Unix
ExtUtils::MM_MacOS - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_NW5 - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_OS2 - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_UWIN - U/WIN specific subclass of ExtUtils::MM_Unix
ExtUtils::MM_Unix - Methods used by ExtUtils::MakeMaker
ExtUtils::MM_VMS - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_Win32 - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_Win95 - Method to customize MakeMaker for Win9X
ExtUtils::MY - ExtUtils::MakeMaker subclass for customization
ExtUtils::MakeMaker - Create a module Makefile
ExtUtils::MakeMaker::FAQ - Frequently Asked Questions About MakeMaker
ExtUtils::MakeMaker::Tutorial - Writing a module with MakeMaker
ExtUtils::MakeMaker::bytes - Version-agnostic bytes.pm
ExtUtils::MakeMaker::vmsish - Platform-agnostic vmsish.pm
ExtUtils::Manifest - Utilities to write and check a MANIFEST file
ExtUtils::Mkbootstrap - Make a bootstrap file for use by DynaLoader
ExtUtils::Mksymlists - Write linker options files for dynamic extension
ExtUtils::Packlist - Manage .packlist files
ExtUtils::testlib - Add blib/* directories to @INC
Fatal - Replace functions with equivalents which succeed or die
Fcntl - Load the C Fcntl.h defines
File::Basename - Split a pathname into pieces
File::CheckTree - Run many filetest checks on a tree
File::Compare - Compare files or filehandles
File::Copy - Copy files or filehandles
File::DosGlob - DOS like globbing and then some
File::Find - Traverse a file tree
File::Glob - Perl extension for BSD glob routine
File::Path - Create or remove directory trees
File::Spec - Portably perform operations on file names
File::Spec::Cygwin - Methods for Cygwin file specs
File::Spec::Epoc - Methods for Epoc file specs
File::Spec::Functions - Portably perform operations on file names
File::Spec::Mac - File::Spec for Mac OS (Classic)
File::Spec::OS2 - Methods for OS/2 file specs
File::Spec::Unix - File::Spec for Unix, base for other File::Spec modules
File::Spec::VMS - Methods for VMS file specs
File::Spec::Win32 - Methods for Win32 file specs
File::Temp - Return name and handle of a temporary file safely
File::stat - By-name interface to Perl's built-in stat() functions
FileCache - Keep more files open than the system permits
FileHandle - Supply object methods for filehandles
FindBin - Locate directory of original perl script
GDBM_File - Perl5 access to the gdbm library.
Getopt::Long - Extended processing of command line options
Getopt::Std - Process single-character switches with switch clustering
I18N::Collate - Compare 8-bit scalar data according to the current locale
IO - Load various IO modules
IO::Dir - Supply object methods for directory handles
IO::File - Supply object methods for filehandles
IO::Handle - Supply object methods for I/O handles
IO::Pipe - Supply object methods for pipes
IO::Poll - Object interface to system poll call
IO::Seekable - Supply seek based methods for I/O objects
IO::Select - OO interface to the select system call
IO::Socket - Object interface to socket communications
IO::Socket::INET - Object interface for AF_INET domain sockets
IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
IPC::Open2 - Open a process for both reading and writing
IPC::Open3 - Open a process for reading, writing, and error handling
IPC::SysV - SysV IPC constants
IPC::SysV::Msg - SysV Msg IPC object class
IPC::SysV::Semaphore - SysV Semaphore IPC object class
Math::BigFloat - Arbitrary length float math package
Math::BigInt - Arbitrary size integer math package
Math::Complex - Complex numbers and associated mathematical functions
Math::Trig - Trigonometric functions
NDBM_File - Tied access to ndbm files
Net::Ping - Check a remote host for reachability
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::protoent - By-name interface to Perl's built-in getproto*() functions
Net::servent - By-name interface to Perl's built-in getserv*() functions
O - Generic interface to Perl Compiler backends
ODBM_File - Tied access to odbm files
Opcode - Disable named opcodes when compiling perl code
POSIX - Perl interface to IEEE Std 1003.1
Pod::Checker - Check pod documents for syntax errors
Pod::Find - Find POD documents in directory trees
Pod::Html - Module to convert pod files to HTML
Pod::InputObjects - Objects representing POD input paragraphs, commands, etc.
Pod::LaTeX - Convert Pod data to formatted Latex
Pod::Man - Convert POD data to formatted *roff input
Pod::ParseUtils - Helpers for POD parsing and conversion
Pod::Parser - Base class for creating POD filters and translators
Pod::Plainer - Perl extension for converting Pod to old style Pod.
Pod::Select - Extract selected sections of POD from input
Pod::Text - Convert POD data to formatted ASCII text
Pod::Text::Color - Convert POD data to formatted color ASCII text
Pod::Text::Overstrike - Convert POD data to formatted overstrike text
Pod::Text::Termcap - Convert POD data to ASCII text with format escapes
Pod::Usage - Print a usage message from embedded pod documentation
SDBM_File - Tied access to sdbm files
Safe - Compile and execute code in restricted compartments
Search::Dict - Search for key in dictionary file
SelectSaver - Save and restore selected file handle
SelfLoader - Load functions only on demand
Shell - Run shell commands transparently within perl
Socket - Load the C socket.h defines and structure manipulators
Symbol - Manipulate Perl symbols and their names
Sys::Hostname - Try every conceivable way to get hostname
Sys::Syslog - Perl interface to the UNIX syslog(3) calls
Term::ANSIColor - Color screen output using ANSI escape sequences
Term::Cap - Perl termcap interface
Term::Complete - Perl word completion module
Term::ReadLine - Perl interface to various readline
packages. If
Test - Provides a simple framework for writing test scripts
Test::Builder - Backend for building test libraries
Test::Harness - Run perl standard test scripts with statistics
Test::Harness::Assert - Simple assert
Test::Harness::Iterator - Internal Test::Harness Iterator
Test::Harness::Straps - Detailed analysis of test results
Test::More - Yet another framework for writing test scripts
Test::Simple - Basic utilities for writing tests.
Test::Tutorial - A tutorial about writing really basic tests
Text::Abbrev - Create an abbreviation table from a list
Text::ParseWords - Parse text into an array of tokens or array of arrays
Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth
Text::Tabs - Expand and unexpand tabs per the unix expand(1) and unexpand(1)
Text::Wrap - Line wrapping to form simple paragraphs
Thread - Manipulate threads in Perl (EXPERIMENTAL, subject to change)
Thread::Queue - Thread-safe queues
Thread::Semaphore - Thread-safe semaphores
Thread::Signal - Start a thread which runs signal handlers reliably
Thread::Specific - Thread-specific keys
Tie::Array - Base class for tied arrays
Tie::Handle - Base class definitions for tied handles
Tie::Hash - Base class definitions for tied hashes
Tie::RefHash - Use references as hash keys
Tie::Scalar - Base class definitions for tied scalars
Tie::SubstrHash - Fixed-table-size, fixed-key-length hashing
Time::Local - Efficiently compute time from local and GMT time
Time::gmtime - By-name interface to Perl's built-in gmtime() function
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
Win32 - Interfaces to some Win32 API Functions
XSLoader - Dynamically load C libraries into Perl code