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
caller - Inherit pragmatic attributes from caller's context
charnames - Define character names for \N{named}
string literal escape.
constant - Declare constants
diagnostics - Force verbose warning diagnostics
fields - Declare a class's attribute fields at compile-time
filetest - Control the filetest operators like -r
, -w
for AFS, etc.
integer - Compute arithmetic in integer instead of double
less - Request less of something from the compiler (unimplemented)
lib - Manipulate @INC at compile time
locale - Use or avoid POSIX locales for built-in operations
ops - Restrict unsafe operations when compiling
overload - Overload Perl operations
re - Alter regular expression behavior
sigtrap - Enable simple signal handling
strict - Restrict unsafe constructs
subs - Predeclare subroutine names
utf8 - Turn on UTF-8 and Unicode support
vars - Predeclare global variable names (obsoleted by our())
warnings - Control optional warnings
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 DBM libraries
AutoLoader - Load subroutines only on demand
AutoSplit - Split a package for autoloading
B - Guts of the Perl code generator (aka 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::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 - Module to catch dubious constructs
B::Showlex - Show lexical variables used in functions or files
B::Stackobj - Helper module for CC backend
B::Stash -- XXX NFI XXX
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 code
ByteLoader - Load byte-compiled Perl code
CGI - Simple Common Gateway Interface class
CGI::Apache - Make things work with CGI.pm against Perl-Apache API
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 - Try more than one constructors and return the first object available
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 - Act like warn/die 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 (experimental)
DB_File - Perl5 access to Berkeley DB version 1.x
Data::Dumper - Serialize Perl data structures
Devel::DProf - A Perl execution 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 - Provide screen dump of Perl data
DynaLoader - Dynamically load C libraries into Perl code
English - Use English (or awk) names for ugly punctuation variables
Env - Access environment variables as regular ones
Errno - Load the libc errno.h defines
Exporter - Implement 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++ programs
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 Unix behavior in ExtUtils::MakeMaker
ExtUtils::MM_OS2 - Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::MM_Unix - Methods used by ExtUtils::MakeMaker
ExtUtils::MM_VMS - Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::MM_Win32 - Methods to override Unix behavior in ExtUtils::MakeMaker
ExtUtils::MakeMaker - Create an extension Makefile
ExtUtils::Manifest - Utilities to write and check a MANIFEST file
ExtUtils::Miniperl, writemain - Write the C code for perlmain.c
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 libc 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 filename globbing
File::Path - Create or remove a series of directories
File::Spec - Portably perform operations on file names
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::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 installation directory of running Perl program
GDBM_File - 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 current locale
IO - Front-end to 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::Msg - SysV Msg IPC object class
IPC::Open2 - Open a process for both reading and writing
IPC::Open3 - Open a process for reading, writing, and error handling
IPC::Semaphore - SysV Semaphore IPC object class
IPC::SysV - SysV IPC constants
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
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
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::Html - Module to convert pod files to HTML
Pod::InputObjects - Manage POD objects
Pod::Man - Convert POD data to formatted *roff input
Pod::Parser - Base class for creating POD filters and translators
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::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 libc socket.h defines and structure manipulators
Symbol - Manipulate Perl symbols and their names
Sys::Hostname - Try every conceivable way to get hostname
Sys::Syslog - Interface to the libc syslog(3) calls
Term::Cap - Termcap interface
Term::Complete - Word completion module
Term::ReadLine - Interface to various `readline' packages.
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::ParseWords - Parse text into a list of tokens or array of arrays
Text::Soundex - Implementation of the Soundex Algorithm as described by Knuth
Text::Tabs -- expand and unexpand tabs per 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