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
integer - Use integer arithmetic instead of floating point
less - Request less of something from the compiler
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
unicode::distinct - Strictly distinguish UTF8 data and non-UTF data.
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.
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 - No user serviceable parts inside
Class::ISA - Report the search path for a class's ISA tree
Class::Struct - Declare struct-like datatypes as Perl classes
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
Devel::SelfStubber - Generate stubs for a SelfLoading module
Digest - Modules that calculate message digests
DirHandle - Supply object methods for directory handles
Dumpvalue - Provides screen dump of Perl data.
Encode - Character encodings
Encode::EncodeFormat - The format of encoding tables of the Encode extension
Encode::Tcl - Tcl encodings
English - Use nice English (or awk) names for ugly punctuation variables
Env - Perl module that imports environment variables as scalars or arrays
Exporter - Implements default import method for modules
Exporter::Heavy - Exporter guts
ExtUtils::Command - Utilities to replace common UNIX commands in Makefiles etc.
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_Cygwin - Methods to override UN*X behaviour in ExtUtils::MakeMaker
ExtUtils::MM_OS2 - Methods to override UN*X behaviour in ExtUtils::MakeMaker
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::MakeMaker - Create an extension Makefile
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::Path - Create or remove directory trees
File::Spec - Portably perform operations on file names
File::Spec::Epoc - Methods for Epoc file specs
File::Spec::Functions - Portably perform operations on file names
File::Spec::Mac - File::Spec for MacOS
File::Spec::OS2 - Methods for OS/2 file specs
File::Spec::Unix - Methods used by File::Spec
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
Filter::Simple - Simplified source filtering
FindBin - Locate directory of original perl script
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
IPC::Open2 - Open a process for both reading and writing
IPC::Open3 - Open a process for reading, writing, and error handling
Locale::Constants - Constants for Locale codes
Locale::Country - ISO codes for country identification (ISO 3166)
Locale::Currency - ISO three letter codes for currency identification (ISO 4217)
Locale::Language - ISO two letter codes for language identification (ISO 639)
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
PerlIO - On demand loader for PerlIO layers and root of PerlIO::* name space
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
Storable - Persistency for perl data structures
Switch - A switch statement for Perl
Symbol - Manipulate Perl symbols and their names
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::Harness - Run perl standard test scripts with statistics
Text::Abbrev - Create an abbreviation table from a list
Text::Balanced - Extract delimited text sequences from strings.
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
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