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
bigint - Transparent big integer support for Perl
bignum - Transparent BigNumber support for Perl
bigrat - Transparent BigNumber/BigRational support for Perl
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 escapes
constant - Declare constants
diagnostics - Perl compiler pragma to force verbose warning diagnostics
encoding - Allows you to write your script in non-ascii or non-utf8
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
locale - Use and avoid POSIX locales for built-in operations
open - Set default PerlIO layers 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
sort - Control sort() behaviour
strict - Restrict unsafe constructs
subs - Predeclare sub names
threads - Perl extension allowing use of interpreter based threads from perl
utf8 - Enable/disable UTF-8 (or UTF-EBCDIC) in source code
vars - Predeclare global variable names (obsolete)
vmsish - Control VMS-specific language features
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
Attribute::Handlers - Simpler definition of attribute handlers
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
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
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
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::Constant - Generate XS code to import C header constants
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 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 directory tree.
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
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
Hash::Util - A selection of general-utility hash subroutines
I18N::Collate - Compare 8-bit scalar data according to the current locale
I18N::LangTags - Functions for dealing with RFC3066-style language tags
I18N::LangTags::List - Tags and names for human languages
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)
Locale::Maketext - Framework for localization
Locale::Maketext::TPJ13 - Article about software localization
Locale::Script - ISO codes for script identification (ISO 15924)
Math::BigFloat - Arbitrary size floating point math package
Math::BigInt - Arbitrary size integer math package
Math::BigInt::Calc - Pure Perl module to support Math::BigInt
Math::BigRat - Arbitrarily big rationals
Math::Complex - Complex numbers and associated mathematical functions
Math::Trig - Trigonometric functions
Memoize - Make functions faster by trading space for time
Memoize::AnyDBM_File - Glue to provide EXISTS for AnyDBM_File for Storable use
Memoize::Expire - Plug-in module for automatic expiration of memoized values
Memoize::ExpireFile - Test for Memoize expiration semantics
Memoize::ExpireTest - Test for Memoize expiration semantics
Memoize::NDBM_File - Glue to provide EXISTS for NDBM_File for Storable use
Memoize::SDBM_File - Glue to provide EXISTS for SDBM_File for Storable use
Memoize::Storable - Store Memoized data in Storable database
NDBM_File - Tied access to ndbm files
NEXT - Provide a pseudo-class NEXT that allows method redispatch
Net::Cmd - Network Command class (as used by FTP, SMTP etc)
Net::Config - Local configuration data for libnet
Net::Domain - Attempt to evaluate the current host's internet name and domain
Net::FTP - FTP Client class
Net::NNTP - NNTP Client class
Net::Netrc - OO interface to users netrc file
Net::POP3 - Post Office Protocol 3 Client class (RFC1939)
Net::Ping - Check a remote host for reachability
Net::SMTP - Simple Mail Transfer Protocol Client
Net::Time - Time and daytime network client interface
Net::hostent - By-name interface to Perl's built-in gethost*() functions
Net::libnetFAQ - Libnet Frequently Asked Questions
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
PerlIO::via::QuotedPrint - PerlIO layer for quoted-printable strings
Pod::Checker - Check pod documents for syntax errors
Pod::Find - Find POD documents in directory trees
Pod::Functions - Group Perl's functions a la perlfunc.pod
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::ParseLink - Parse an L<> formatting code in POD text
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 - Persistence 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::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::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
Thread - Manipulate threads in Perl (for old code only)
Thread::Queue - Thread-safe queues
Thread::Semaphore - Thread-safe semaphores
Tie::Array - Base class for tied arrays
Tie::File - Access the lines of a disk file via a Perl array
Tie::Handle - Base class definitions for tied handles
Tie::Hash - Base class definitions for tied hashes
Tie::Memoize - Add data to hash when needed
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)
Unicode::Collate - Unicode Collation Algorithm
Unicode::UCD - Unicode character database
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