diff options
Diffstat (limited to 'upstream/debian-unstable/man1/perlmodlib.1')
-rw-r--r-- | upstream/debian-unstable/man1/perlmodlib.1 | 2365 |
1 files changed, 2365 insertions, 0 deletions
diff --git a/upstream/debian-unstable/man1/perlmodlib.1 b/upstream/debian-unstable/man1/perlmodlib.1 new file mode 100644 index 00000000..b4d0f8c2 --- /dev/null +++ b/upstream/debian-unstable/man1/perlmodlib.1 @@ -0,0 +1,2365 @@ +.\" -*- mode: troff; coding: utf-8 -*- +.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. +.ie n \{\ +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "PERLMODLIB 1" +.TH PERLMODLIB 1 2024-01-12 "perl v5.38.2" "Perl Programmers Reference Guide" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH NAME +perlmodlib \- constructing new Perl modules and finding existing ones +.SH "THE PERL MODULE LIBRARY" +.IX Header "THE PERL MODULE LIBRARY" +Many modules are included in the Perl distribution. These are described +below, and all end in \fI.pm\fR. You may discover compiled library +files (usually ending in \fI.so\fR) or small pieces of modules to be +autoloaded (ending in \fI.al\fR); these were automatically generated +by the installation process. You may also discover files in the +library directory that end in either \fI.pl\fR or \fI.ph\fR. These are +old libraries supplied so that old programs that use them still +run. The \fI.pl\fR files will all eventually be converted into standard +modules, and the \fI.ph\fR files made by \fBh2ph\fR will probably end up +as extension modules made by \fBh2xs\fR. (Some \fI.ph\fR values may +already be available through the POSIX, Errno, or Fcntl modules.) +The \fBpl2pm\fR file in the distribution may help in your conversion, +but it's just a mechanical process and therefore far from bulletproof. +.SS "Pragmatic Modules" +.IX Subsection "Pragmatic Modules" +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 \f(CW\*(C`use\*(C'\fR, or \f(CW\*(C`no\*(C'\fR. Most of these +are lexically scoped, so an inner BLOCK may countermand them +by saying: +.PP +.Vb 3 +\& no integer; +\& no strict \*(Aqrefs\*(Aq; +\& no warnings; +.Ve +.PP +which lasts until the end of that BLOCK. +.PP +Some pragmas are lexically scoped\-\-typically those that affect the +\&\f(CW$^H\fR hints variable. Others affect the current package instead, +like \f(CW\*(C`use vars\*(C'\fR and \f(CW\*(C`use subs\*(C'\fR, which allow you to predeclare a +variables or subroutines within a particular \fIfile\fR rather than +just a block. Such declarations are effective for the entire file +for which they were declared. You cannot rescind them with \f(CW\*(C`no +vars\*(C'\fR or \f(CW\*(C`no subs\*(C'\fR. +.PP +The following pragmas are defined (and have their own documentation). +.IP attributes 12 +.IX Item "attributes" +Get/set subroutine or variable attributes +.IP autodie 12 +.IX Item "autodie" +Replace functions with ones that succeed or die with lexical scope +.IP autodie::exception 12 +.IX Item "autodie::exception" +Exceptions from autodying functions. +.IP autodie::exception::system 12 +.IX Item "autodie::exception::system" +Exceptions from autodying \fBsystem()\fR. +.IP autodie::hints 12 +.IX Item "autodie::hints" +Provide hints about user subroutines to autodie +.IP autodie::skip 12 +.IX Item "autodie::skip" +Skip a package when throwing autodie exceptions +.IP autouse 12 +.IX Item "autouse" +Postpone load of modules until a function is used +.IP base 12 +.IX Item "base" +Establish an ISA relationship with base classes at compile time +.IP bigfloat 12 +.IX Item "bigfloat" +Transparent big floating point number support for Perl +.IP bigint 12 +.IX Item "bigint" +Transparent big integer support for Perl +.IP bignum 12 +.IX Item "bignum" +Transparent big number support for Perl +.IP bigrat 12 +.IX Item "bigrat" +Transparent big rational number support for Perl +.IP blib 12 +.IX Item "blib" +Use MakeMaker's uninstalled version of a package +.IP builtin 12 +.IX Item "builtin" +Import built-in utility functions +.IP bytes 12 +.IX Item "bytes" +Expose the individual bytes of characters +.IP charnames 12 +.IX Item "charnames" +Access to Unicode character names and named character sequences; also define character names +.IP constant 12 +.IX Item "constant" +Declare constants +.IP deprecate 12 +.IX Item "deprecate" +Perl pragma for deprecating the inclusion of a module in core +.IP diagnostics 12 +.IX Item "diagnostics" +Produce verbose warning diagnostics +.IP encoding 12 +.IX Item "encoding" +Allows you to write your script in non-ASCII and non\-UTF\-8 +.IP encoding::warnings 12 +.IX Item "encoding::warnings" +Warn on implicit encoding conversions +.IP experimental 12 +.IX Item "experimental" +Experimental features made easy +.IP feature 12 +.IX Item "feature" +Enable new features +.IP fields 12 +.IX Item "fields" +Compile-time class fields +.IP filetest 12 +.IX Item "filetest" +Control the filetest permission operators +.IP if 12 +.IX Item "if" +\&\f(CW\*(C`use\*(C'\fR a Perl module if a condition holds +.IP integer 12 +.IX Item "integer" +Use integer arithmetic instead of floating point +.IP less 12 +.IX Item "less" +Request less of something +.IP lib 12 +.IX Item "lib" +Manipulate \f(CW@INC\fR at compile time +.IP locale 12 +.IX Item "locale" +Use or avoid POSIX locales for built-in operations +.IP mro 12 +.IX Item "mro" +Method Resolution Order +.IP ok 12 +.IX Item "ok" +Alternative to Test::More::use_ok +.IP open 12 +.IX Item "open" +Set default PerlIO layers for input and output +.IP ops 12 +.IX Item "ops" +Restrict unsafe operations when compiling +.IP overload 12 +.IX Item "overload" +Package for overloading Perl operations +.IP overloading 12 +.IX Item "overloading" +Lexically control overloading +.IP parent 12 +.IX Item "parent" +Establish an ISA relationship with base classes at compile time +.IP re 12 +.IX Item "re" +Alter regular expression behaviour +.IP sigtrap 12 +.IX Item "sigtrap" +Enable simple signal handling +.IP sort 12 +.IX Item "sort" +Control \fBsort()\fR behaviour +.IP stable 12 +.IX Item "stable" +Experimental features made easy, once we know they're stable +.IP strict 12 +.IX Item "strict" +Restrict unsafe constructs +.IP subs 12 +.IX Item "subs" +Predeclare subroutine names +.IP threads 12 +.IX Item "threads" +Perl interpreter-based threads +.IP threads::shared 12 +.IX Item "threads::shared" +Perl extension for sharing data structures between threads +.IP utf8 12 +.IX Item "utf8" +Enable/disable UTF\-8 (or UTF-EBCDIC) in source code +.IP vars 12 +.IX Item "vars" +Predeclare global variable names +.IP version 12 +.IX Item "version" +Perl extension for Version Objects +.IP vmsish 12 +.IX Item "vmsish" +Control VMS-specific language features +.IP warnings 12 +.IX Item "warnings" +Control optional warnings +.IP warnings::register 12 +.IX Item "warnings::register" +Warnings import function +.SS "Standard Modules" +.IX Subsection "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. +.PP +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. +.IP Amiga::ARexx 12 +.IX Item "Amiga::ARexx" +Perl extension for ARexx support +.IP Amiga::Exec 12 +.IX Item "Amiga::Exec" +Perl extension for low level amiga support +.IP AnyDBM_File 12 +.IX Item "AnyDBM_File" +Provide framework for multiple DBMs +.IP App::Cpan 12 +.IX Item "App::Cpan" +Easily interact with CPAN from the command line +.IP App::Prove 12 +.IX Item "App::Prove" +Implements the \f(CW\*(C`prove\*(C'\fR command. +.IP App::Prove::State 12 +.IX Item "App::Prove::State" +State storage for the \f(CW\*(C`prove\*(C'\fR command. +.IP App::Prove::State::Result 12 +.IX Item "App::Prove::State::Result" +Individual test suite results. +.IP App::Prove::State::Result::Test 12 +.IX Item "App::Prove::State::Result::Test" +Individual test results. +.IP Archive::Tar 12 +.IX Item "Archive::Tar" +Module for manipulations of tar archives +.IP Archive::Tar::File 12 +.IX Item "Archive::Tar::File" +A subclass for in-memory extracted file from Archive::Tar +.IP Attribute::Handlers 12 +.IX Item "Attribute::Handlers" +Simpler definition of attribute handlers +.IP AutoLoader 12 +.IX Item "AutoLoader" +Load subroutines only on demand +.IP AutoSplit 12 +.IX Item "AutoSplit" +Split a package for autoloading +.IP B 12 +.IX Item "B" +The Perl Compiler Backend +.IP B::Concise 12 +.IX Item "B::Concise" +Walk Perl syntax tree, printing concise info about ops +.IP B::Deparse 12 +.IX Item "B::Deparse" +Perl compiler backend to produce perl code +.IP B::Op_private 12 +.IX Item "B::Op_private" +OP op_private flag definitions +.IP B::Showlex 12 +.IX Item "B::Showlex" +Show lexical variables used in functions or files +.IP B::Terse 12 +.IX Item "B::Terse" +Walk Perl syntax tree, printing terse info about ops +.IP B::Xref 12 +.IX Item "B::Xref" +Generates cross reference reports for Perl programs +.IP Benchmark 12 +.IX Item "Benchmark" +Benchmark running times of Perl code +.ie n .IP """IO::Socket::IP""" 12 +.el .IP \f(CWIO::Socket::IP\fR 12 +.IX Item "IO::Socket::IP" +Family-neutral IP socket supporting both IPv4 and IPv6 +.ie n .IP """Socket""" 12 +.el .IP \f(CWSocket\fR 12 +.IX Item "Socket" +Networking constants and support functions +.IP CORE 12 +.IX Item "CORE" +Namespace for Perl's core routines +.IP CPAN 12 +.IX Item "CPAN" +Query, download and build perl modules from CPAN sites +.IP CPAN::API::HOWTO 12 +.IX Item "CPAN::API::HOWTO" +A recipe book for programming with CPAN.pm +.IP CPAN::Debug 12 +.IX Item "CPAN::Debug" +Internal debugging for CPAN.pm +.IP CPAN::Distroprefs 12 +.IX Item "CPAN::Distroprefs" +Read and match distroprefs +.IP CPAN::FirstTime 12 +.IX Item "CPAN::FirstTime" +Utility for CPAN::Config file Initialization +.IP CPAN::HandleConfig 12 +.IX Item "CPAN::HandleConfig" +Internal configuration handling for CPAN.pm +.IP CPAN::Kwalify 12 +.IX Item "CPAN::Kwalify" +Interface between CPAN.pm and Kwalify.pm +.IP CPAN::Meta 12 +.IX Item "CPAN::Meta" +The distribution metadata for a CPAN dist +.IP CPAN::Meta::Converter 12 +.IX Item "CPAN::Meta::Converter" +Convert CPAN distribution metadata structures +.IP CPAN::Meta::Feature 12 +.IX Item "CPAN::Meta::Feature" +An optional feature provided by a CPAN distribution +.IP CPAN::Meta::History 12 +.IX Item "CPAN::Meta::History" +History of CPAN Meta Spec changes +.IP CPAN::Meta::History::Meta_1_0 12 +.IX Item "CPAN::Meta::History::Meta_1_0" +Version 1.0 metadata specification for META.yml +.IP CPAN::Meta::History::Meta_1_1 12 +.IX Item "CPAN::Meta::History::Meta_1_1" +Version 1.1 metadata specification for META.yml +.IP CPAN::Meta::History::Meta_1_2 12 +.IX Item "CPAN::Meta::History::Meta_1_2" +Version 1.2 metadata specification for META.yml +.IP CPAN::Meta::History::Meta_1_3 12 +.IX Item "CPAN::Meta::History::Meta_1_3" +Version 1.3 metadata specification for META.yml +.IP CPAN::Meta::History::Meta_1_4 12 +.IX Item "CPAN::Meta::History::Meta_1_4" +Version 1.4 metadata specification for META.yml +.IP CPAN::Meta::Merge 12 +.IX Item "CPAN::Meta::Merge" +Merging CPAN Meta fragments +.IP CPAN::Meta::Prereqs 12 +.IX Item "CPAN::Meta::Prereqs" +A set of distribution prerequisites by phase and type +.IP CPAN::Meta::Requirements 12 +.IX Item "CPAN::Meta::Requirements" +A set of version requirements for a CPAN dist +.IP CPAN::Meta::Spec 12 +.IX Item "CPAN::Meta::Spec" +Specification for CPAN distribution metadata +.IP CPAN::Meta::Validator 12 +.IX Item "CPAN::Meta::Validator" +Validate CPAN distribution metadata structures +.IP CPAN::Meta::YAML 12 +.IX Item "CPAN::Meta::YAML" +Read and write a subset of YAML for CPAN Meta files +.IP CPAN::Nox 12 +.IX Item "CPAN::Nox" +Wrapper around CPAN.pm without using any XS module +.IP CPAN::Plugin 12 +.IX Item "CPAN::Plugin" +Base class for CPAN shell extensions +.IP CPAN::Plugin::Specfile 12 +.IX Item "CPAN::Plugin::Specfile" +Proof of concept implementation of a trivial CPAN::Plugin +.IP CPAN::Queue 12 +.IX Item "CPAN::Queue" +Internal queue support for CPAN.pm +.IP CPAN::Tarzip 12 +.IX Item "CPAN::Tarzip" +Internal handling of tar archives for CPAN.pm +.IP CPAN::Version 12 +.IX Item "CPAN::Version" +Utility functions to compare CPAN versions +.IP Carp 12 +.IX Item "Carp" +Alternative warn and die for modules +.IP Class::Struct 12 +.IX Item "Class::Struct" +Declare struct-like datatypes as Perl classes +.IP Compress::Raw::Bzip2 12 +.IX Item "Compress::Raw::Bzip2" +Low-Level Interface to bzip2 compression library +.IP Compress::Raw::Zlib 12 +.IX Item "Compress::Raw::Zlib" +Low-Level Interface to zlib or zlib-ng compression library +.IP Compress::Zlib 12 +.IX Item "Compress::Zlib" +Interface to zlib compression library +.IP Config 12 +.IX Item "Config" +Access Perl configuration information +.IP Config::Extensions 12 +.IX Item "Config::Extensions" +Hash lookup of which core extensions were built. +.IP Config::Perl::V 12 +.IX Item "Config::Perl::V" +Structured data retrieval of perl \-V output +.IP Cwd 12 +.IX Item "Cwd" +Get pathname of current working directory +.IP DB 12 +.IX Item "DB" +Programmatic interface to the Perl debugging API +.IP DBM_Filter 12 +.IX Item "DBM_Filter" +Filter DBM keys/values +.IP DBM_Filter::compress 12 +.IX Item "DBM_Filter::compress" +Filter for DBM_Filter +.IP DBM_Filter::encode 12 +.IX Item "DBM_Filter::encode" +Filter for DBM_Filter +.IP DBM_Filter::int32 12 +.IX Item "DBM_Filter::int32" +Filter for DBM_Filter +.IP DBM_Filter::null 12 +.IX Item "DBM_Filter::null" +Filter for DBM_Filter +.IP DBM_Filter::utf8 12 +.IX Item "DBM_Filter::utf8" +Filter for DBM_Filter +.IP DB_File 12 +.IX Item "DB_File" +Perl5 access to Berkeley DB version 1.x +.IP Data::Dumper 12 +.IX Item "Data::Dumper" +Stringified perl data structures, suitable for both printing and \f(CW\*(C`eval\*(C'\fR +.IP Devel::PPPort 12 +.IX Item "Devel::PPPort" +Perl/Pollution/Portability +.IP Devel::Peek 12 +.IX Item "Devel::Peek" +A data debugging tool for the XS programmer +.IP Devel::SelfStubber 12 +.IX Item "Devel::SelfStubber" +Generate stubs for a SelfLoading module +.IP Digest 12 +.IX Item "Digest" +Modules that calculate message digests +.IP Digest::MD5 12 +.IX Item "Digest::MD5" +Perl interface to the MD5 Algorithm +.IP Digest::SHA 12 +.IX Item "Digest::SHA" +Perl extension for SHA\-1/224/256/384/512 +.IP Digest::base 12 +.IX Item "Digest::base" +Digest base class +.IP Digest::file 12 +.IX Item "Digest::file" +Calculate digests of files +.IP DirHandle 12 +.IX Item "DirHandle" +(obsolete) supply object methods for directory handles +.IP Dumpvalue 12 +.IX Item "Dumpvalue" +Provides screen dump of Perl data. +.IP DynaLoader 12 +.IX Item "DynaLoader" +Dynamically load C libraries into Perl code +.IP Encode 12 +.IX Item "Encode" +Character encodings in Perl +.IP Encode::Alias 12 +.IX Item "Encode::Alias" +Alias definitions to encodings +.IP Encode::Byte 12 +.IX Item "Encode::Byte" +Single Byte Encodings +.IP Encode::CJKConstants 12 +.IX Item "Encode::CJKConstants" +Internally used by Encode::??::ISO_2022_* +.IP Encode::CN 12 +.IX Item "Encode::CN" +China-based Chinese Encodings +.IP Encode::CN::HZ 12 +.IX Item "Encode::CN::HZ" +Internally used by Encode::CN +.IP Encode::Config 12 +.IX Item "Encode::Config" +Internally used by Encode +.IP Encode::EBCDIC 12 +.IX Item "Encode::EBCDIC" +EBCDIC Encodings +.IP Encode::Encoder 12 +.IX Item "Encode::Encoder" +Object Oriented Encoder +.IP Encode::Encoding 12 +.IX Item "Encode::Encoding" +Encode Implementation Base Class +.IP Encode::GSM0338 12 +.IX Item "Encode::GSM0338" +ETSI GSM 03.38 Encoding +.IP Encode::Guess 12 +.IX Item "Encode::Guess" +Guesses encoding from data +.IP Encode::JP 12 +.IX Item "Encode::JP" +Japanese Encodings +.IP Encode::JP::H2Z 12 +.IX Item "Encode::JP::H2Z" +Internally used by Encode::JP::2022_JP* +.IP Encode::JP::JIS7 12 +.IX Item "Encode::JP::JIS7" +Internally used by Encode::JP +.IP Encode::KR 12 +.IX Item "Encode::KR" +Korean Encodings +.IP Encode::KR::2022_KR 12 +.IX Item "Encode::KR::2022_KR" +Internally used by Encode::KR +.IP Encode::MIME::Header 12 +.IX Item "Encode::MIME::Header" +MIME encoding for an unstructured email header +.IP Encode::MIME::Name 12 +.IX Item "Encode::MIME::Name" +Internally used by Encode +.IP Encode::PerlIO 12 +.IX Item "Encode::PerlIO" +A detailed document on Encode and PerlIO +.IP Encode::Supported 12 +.IX Item "Encode::Supported" +Encodings supported by Encode +.IP Encode::Symbol 12 +.IX Item "Encode::Symbol" +Symbol Encodings +.IP Encode::TW 12 +.IX Item "Encode::TW" +Taiwan-based Chinese Encodings +.IP Encode::Unicode 12 +.IX Item "Encode::Unicode" +Various Unicode Transformation Formats +.IP Encode::Unicode::UTF7 12 +.IX Item "Encode::Unicode::UTF7" +UTF\-7 encoding +.IP English 12 +.IX Item "English" +Use nice English (or awk) names for ugly punctuation variables +.IP Env 12 +.IX Item "Env" +Perl module that imports environment variables as scalars or arrays +.IP Errno 12 +.IX Item "Errno" +System errno constants +.IP Exporter 12 +.IX Item "Exporter" +Implements default import method for modules +.IP Exporter::Heavy 12 +.IX Item "Exporter::Heavy" +Exporter guts +.IP ExtUtils::CBuilder 12 +.IX Item "ExtUtils::CBuilder" +Compile and link C code for Perl modules +.IP ExtUtils::CBuilder::Platform::Windows 12 +.IX Item "ExtUtils::CBuilder::Platform::Windows" +Builder class for Windows platforms +.IP ExtUtils::Command 12 +.IX Item "ExtUtils::Command" +Utilities to replace common UNIX commands in Makefiles etc. +.IP ExtUtils::Command::MM 12 +.IX Item "ExtUtils::Command::MM" +Commands for the MM's to use in Makefiles +.IP ExtUtils::Constant 12 +.IX Item "ExtUtils::Constant" +Generate XS code to import C header constants +.IP ExtUtils::Constant::Base 12 +.IX Item "ExtUtils::Constant::Base" +Base class for ExtUtils::Constant objects +.IP ExtUtils::Constant::Utils 12 +.IX Item "ExtUtils::Constant::Utils" +Helper functions for ExtUtils::Constant +.IP ExtUtils::Constant::XS 12 +.IX Item "ExtUtils::Constant::XS" +Generate C code for XS modules' constants. +.IP ExtUtils::Embed 12 +.IX Item "ExtUtils::Embed" +Utilities for embedding Perl in C/C++ applications +.IP ExtUtils::Install 12 +.IX Item "ExtUtils::Install" +Install files from here to there +.IP ExtUtils::Installed 12 +.IX Item "ExtUtils::Installed" +Inventory management of installed modules +.IP ExtUtils::Liblist 12 +.IX Item "ExtUtils::Liblist" +Determine libraries to use and how to use them +.IP ExtUtils::MM 12 +.IX Item "ExtUtils::MM" +OS adjusted ExtUtils::MakeMaker subclass +.IP ExtUtils::MM_AIX 12 +.IX Item "ExtUtils::MM_AIX" +AIX specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_Any 12 +.IX Item "ExtUtils::MM_Any" +Platform-agnostic MM methods +.IP ExtUtils::MM_BeOS 12 +.IX Item "ExtUtils::MM_BeOS" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_Cygwin 12 +.IX Item "ExtUtils::MM_Cygwin" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_DOS 12 +.IX Item "ExtUtils::MM_DOS" +DOS specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_Darwin 12 +.IX Item "ExtUtils::MM_Darwin" +Special behaviors for OS X +.IP ExtUtils::MM_MacOS 12 +.IX Item "ExtUtils::MM_MacOS" +Once produced Makefiles for MacOS Classic +.IP ExtUtils::MM_NW5 12 +.IX Item "ExtUtils::MM_NW5" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_OS2 12 +.IX Item "ExtUtils::MM_OS2" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_OS390 12 +.IX Item "ExtUtils::MM_OS390" +OS390 specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_QNX 12 +.IX Item "ExtUtils::MM_QNX" +QNX specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_UWIN 12 +.IX Item "ExtUtils::MM_UWIN" +U/WIN specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_Unix 12 +.IX Item "ExtUtils::MM_Unix" +Methods used by ExtUtils::MakeMaker +.IP ExtUtils::MM_VMS 12 +.IX Item "ExtUtils::MM_VMS" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_VOS 12 +.IX Item "ExtUtils::MM_VOS" +VOS specific subclass of ExtUtils::MM_Unix +.IP ExtUtils::MM_Win32 12 +.IX Item "ExtUtils::MM_Win32" +Methods to override UN*X behaviour in ExtUtils::MakeMaker +.IP ExtUtils::MM_Win95 12 +.IX Item "ExtUtils::MM_Win95" +Method to customize MakeMaker for Win9X +.IP ExtUtils::MY 12 +.IX Item "ExtUtils::MY" +ExtUtils::MakeMaker subclass for customization +.IP ExtUtils::MakeMaker 12 +.IX Item "ExtUtils::MakeMaker" +Create a module Makefile +.IP ExtUtils::MakeMaker::Config 12 +.IX Item "ExtUtils::MakeMaker::Config" +Wrapper around Config.pm +.IP ExtUtils::MakeMaker::FAQ 12 +.IX Item "ExtUtils::MakeMaker::FAQ" +Frequently Asked Questions About MakeMaker +.IP ExtUtils::MakeMaker::Locale 12 +.IX Item "ExtUtils::MakeMaker::Locale" +Bundled Encode::Locale +.IP ExtUtils::MakeMaker::Tutorial 12 +.IX Item "ExtUtils::MakeMaker::Tutorial" +Writing a module with MakeMaker +.IP ExtUtils::Manifest 12 +.IX Item "ExtUtils::Manifest" +Utilities to write and check a MANIFEST file +.IP ExtUtils::Miniperl 12 +.IX Item "ExtUtils::Miniperl" +Write the C code for miniperlmain.c and perlmain.c +.IP ExtUtils::Mkbootstrap 12 +.IX Item "ExtUtils::Mkbootstrap" +Make a bootstrap file for use by DynaLoader +.IP ExtUtils::Mksymlists 12 +.IX Item "ExtUtils::Mksymlists" +Write linker options files for dynamic extension +.IP ExtUtils::PL2Bat 12 +.IX Item "ExtUtils::PL2Bat" +Batch file creation to run perl scripts on Windows +.IP ExtUtils::Packlist 12 +.IX Item "ExtUtils::Packlist" +Manage .packlist files +.IP ExtUtils::ParseXS 12 +.IX Item "ExtUtils::ParseXS" +Converts Perl XS code into C code +.IP ExtUtils::ParseXS::Constants 12 +.IX Item "ExtUtils::ParseXS::Constants" +Initialization values for some globals +.IP ExtUtils::ParseXS::Eval 12 +.IX Item "ExtUtils::ParseXS::Eval" +Clean package to evaluate code in +.IP ExtUtils::ParseXS::Utilities 12 +.IX Item "ExtUtils::ParseXS::Utilities" +Subroutines used with ExtUtils::ParseXS +.IP ExtUtils::Typemaps 12 +.IX Item "ExtUtils::Typemaps" +Read/Write/Modify Perl/XS typemap files +.IP ExtUtils::Typemaps::Cmd 12 +.IX Item "ExtUtils::Typemaps::Cmd" +Quick commands for handling typemaps +.IP ExtUtils::Typemaps::InputMap 12 +.IX Item "ExtUtils::Typemaps::InputMap" +Entry in the INPUT section of a typemap +.IP ExtUtils::Typemaps::OutputMap 12 +.IX Item "ExtUtils::Typemaps::OutputMap" +Entry in the OUTPUT section of a typemap +.IP ExtUtils::Typemaps::Type 12 +.IX Item "ExtUtils::Typemaps::Type" +Entry in the TYPEMAP section of a typemap +.IP ExtUtils::XSSymSet 12 +.IX Item "ExtUtils::XSSymSet" +Keep sets of symbol names palatable to the VMS linker +.IP ExtUtils::testlib 12 +.IX Item "ExtUtils::testlib" +Add blib/* directories to \f(CW@INC\fR +.IP Fatal 12 +.IX Item "Fatal" +Replace functions with equivalents which succeed or die +.IP Fcntl 12 +.IX Item "Fcntl" +Load the C Fcntl.h defines +.IP File::Basename 12 +.IX Item "File::Basename" +Parse file paths into directory, filename and suffix. +.IP File::Compare 12 +.IX Item "File::Compare" +Compare files or filehandles +.IP File::Copy 12 +.IX Item "File::Copy" +Copy files or filehandles +.IP File::DosGlob 12 +.IX Item "File::DosGlob" +DOS like globbing and then some +.IP File::Fetch 12 +.IX Item "File::Fetch" +A generic file fetching mechanism +.IP File::Find 12 +.IX Item "File::Find" +Traverse a directory tree. +.IP File::Glob 12 +.IX Item "File::Glob" +Perl extension for BSD glob routine +.IP File::GlobMapper 12 +.IX Item "File::GlobMapper" +Extend File Glob to Allow Input and Output Files +.IP File::Path 12 +.IX Item "File::Path" +Create or remove directory trees +.IP File::Spec 12 +.IX Item "File::Spec" +Portably perform operations on file names +.IP File::Spec::AmigaOS 12 +.IX Item "File::Spec::AmigaOS" +File::Spec for AmigaOS +.IP File::Spec::Cygwin 12 +.IX Item "File::Spec::Cygwin" +Methods for Cygwin file specs +.IP File::Spec::Epoc 12 +.IX Item "File::Spec::Epoc" +Methods for Epoc file specs +.IP File::Spec::Functions 12 +.IX Item "File::Spec::Functions" +Portably perform operations on file names +.IP File::Spec::Mac 12 +.IX Item "File::Spec::Mac" +File::Spec for Mac OS (Classic) +.IP File::Spec::OS2 12 +.IX Item "File::Spec::OS2" +Methods for OS/2 file specs +.IP File::Spec::Unix 12 +.IX Item "File::Spec::Unix" +File::Spec for Unix, base for other File::Spec modules +.IP File::Spec::VMS 12 +.IX Item "File::Spec::VMS" +Methods for VMS file specs +.IP File::Spec::Win32 12 +.IX Item "File::Spec::Win32" +Methods for Win32 file specs +.IP File::Temp 12 +.IX Item "File::Temp" +Return name and handle of a temporary file safely +.IP File::stat 12 +.IX Item "File::stat" +By-name interface to Perl's built-in \fBstat()\fR functions +.IP FileCache 12 +.IX Item "FileCache" +Keep more files open than the system permits +.IP FileHandle 12 +.IX Item "FileHandle" +Supply object methods for filehandles +.IP Filter::Simple 12 +.IX Item "Filter::Simple" +Simplified source filtering +.IP Filter::Util::Call 12 +.IX Item "Filter::Util::Call" +Perl Source Filter Utility Module +.IP FindBin 12 +.IX Item "FindBin" +Locate directory of original perl script +.IP GDBM_File 12 +.IX Item "GDBM_File" +Perl5 access to the gdbm library. +.IP Getopt::Long 12 +.IX Item "Getopt::Long" +Extended processing of command line options +.IP Getopt::Std 12 +.IX Item "Getopt::Std" +Process single-character switches with switch clustering +.IP HTTP::Tiny 12 +.IX Item "HTTP::Tiny" +A small, simple, correct HTTP/1.1 client +.IP Hash::Util 12 +.IX Item "Hash::Util" +A selection of general-utility hash subroutines +.IP Hash::Util::FieldHash 12 +.IX Item "Hash::Util::FieldHash" +Support for Inside-Out Classes +.IP I18N::Collate 12 +.IX Item "I18N::Collate" +Compare 8\-bit scalar data according to the current locale +.IP I18N::LangTags 12 +.IX Item "I18N::LangTags" +Functions for dealing with RFC3066\-style language tags +.IP I18N::LangTags::Detect 12 +.IX Item "I18N::LangTags::Detect" +Detect the user's language preferences +.IP I18N::LangTags::List 12 +.IX Item "I18N::LangTags::List" +Tags and names for human languages +.IP I18N::Langinfo 12 +.IX Item "I18N::Langinfo" +Query locale information +.IP IO 12 +.IX Item "IO" +Load various IO modules +.IP IO::Compress::Base 12 +.IX Item "IO::Compress::Base" +Base Class for IO::Compress modules +.IP IO::Compress::Bzip2 12 +.IX Item "IO::Compress::Bzip2" +Write bzip2 files/buffers +.IP IO::Compress::Deflate 12 +.IX Item "IO::Compress::Deflate" +Write RFC 1950 files/buffers +.IP IO::Compress::FAQ 12 +.IX Item "IO::Compress::FAQ" +Frequently Asked Questions about IO::Compress +.IP IO::Compress::Gzip 12 +.IX Item "IO::Compress::Gzip" +Write RFC 1952 files/buffers +.IP IO::Compress::RawDeflate 12 +.IX Item "IO::Compress::RawDeflate" +Write RFC 1951 files/buffers +.IP IO::Compress::Zip 12 +.IX Item "IO::Compress::Zip" +Write zip files/buffers +.IP IO::Dir 12 +.IX Item "IO::Dir" +Supply object methods for directory handles +.IP IO::File 12 +.IX Item "IO::File" +Supply object methods for filehandles +.IP IO::Handle 12 +.IX Item "IO::Handle" +Supply object methods for I/O handles +.IP IO::Pipe 12 +.IX Item "IO::Pipe" +Supply object methods for pipes +.IP IO::Poll 12 +.IX Item "IO::Poll" +Object interface to system poll call +.IP IO::Seekable 12 +.IX Item "IO::Seekable" +Supply seek based methods for I/O objects +.IP IO::Select 12 +.IX Item "IO::Select" +OO interface to the select system call +.IP IO::Socket 12 +.IX Item "IO::Socket" +Object interface to socket communications +.IP IO::Socket::INET 12 +.IX Item "IO::Socket::INET" +Object interface for AF_INET domain sockets +.IP IO::Socket::UNIX 12 +.IX Item "IO::Socket::UNIX" +Object interface for AF_UNIX domain sockets +.IP IO::Uncompress::AnyInflate 12 +.IX Item "IO::Uncompress::AnyInflate" +Uncompress zlib-based (zip, gzip) file/buffer +.IP IO::Uncompress::AnyUncompress 12 +.IX Item "IO::Uncompress::AnyUncompress" +Uncompress gzip, zip, bzip2, zstd, xz, lzma, lzip, lzf or lzop file/buffer +.IP IO::Uncompress::Base 12 +.IX Item "IO::Uncompress::Base" +Base Class for IO::Uncompress modules +.IP IO::Uncompress::Bunzip2 12 +.IX Item "IO::Uncompress::Bunzip2" +Read bzip2 files/buffers +.IP IO::Uncompress::Gunzip 12 +.IX Item "IO::Uncompress::Gunzip" +Read RFC 1952 files/buffers +.IP IO::Uncompress::Inflate 12 +.IX Item "IO::Uncompress::Inflate" +Read RFC 1950 files/buffers +.IP IO::Uncompress::RawInflate 12 +.IX Item "IO::Uncompress::RawInflate" +Read RFC 1951 files/buffers +.IP IO::Uncompress::Unzip 12 +.IX Item "IO::Uncompress::Unzip" +Read zip files/buffers +.IP IO::Zlib 12 +.IX Item "IO::Zlib" +IO:: style interface to Compress::Zlib +.IP IPC::Cmd 12 +.IX Item "IPC::Cmd" +Finding and running system commands made easy +.IP IPC::Msg 12 +.IX Item "IPC::Msg" +SysV Msg IPC object class +.IP IPC::Open2 12 +.IX Item "IPC::Open2" +Open a process for both reading and writing using \fBopen2()\fR +.IP IPC::Open3 12 +.IX Item "IPC::Open3" +Open a process for reading, writing, and error handling using \fBopen3()\fR +.IP IPC::Semaphore 12 +.IX Item "IPC::Semaphore" +SysV Semaphore IPC object class +.IP IPC::SharedMem 12 +.IX Item "IPC::SharedMem" +SysV Shared Memory IPC object class +.IP IPC::SysV 12 +.IX Item "IPC::SysV" +System V IPC constants and system calls +.IP Internals 12 +.IX Item "Internals" +Reserved special namespace for internals related functions +.IP JSON::PP 12 +.IX Item "JSON::PP" +JSON::XS compatible pure-Perl module. +.IP JSON::PP::Boolean 12 +.IX Item "JSON::PP::Boolean" +Dummy module providing JSON::PP::Boolean +.IP List::Util 12 +.IX Item "List::Util" +A selection of general-utility list subroutines +.IP List::Util::XS 12 +.IX Item "List::Util::XS" +Indicate if List::Util was compiled with a C compiler +.IP Locale::Maketext 12 +.IX Item "Locale::Maketext" +Framework for localization +.IP Locale::Maketext::Cookbook 12 +.IX Item "Locale::Maketext::Cookbook" +Recipes for using Locale::Maketext +.IP Locale::Maketext::Guts 12 +.IX Item "Locale::Maketext::Guts" +Deprecated module to load Locale::Maketext utf8 code +.IP Locale::Maketext::GutsLoader 12 +.IX Item "Locale::Maketext::GutsLoader" +Deprecated module to load Locale::Maketext utf8 code +.IP Locale::Maketext::Simple 12 +.IX Item "Locale::Maketext::Simple" +Simple interface to Locale::Maketext::Lexicon +.IP Locale::Maketext::TPJ13 12 +.IX Item "Locale::Maketext::TPJ13" +Article about software localization +.IP MIME::Base64 12 +.IX Item "MIME::Base64" +Encoding and decoding of base64 strings +.IP MIME::QuotedPrint 12 +.IX Item "MIME::QuotedPrint" +Encoding and decoding of quoted-printable strings +.IP Math::BigFloat 12 +.IX Item "Math::BigFloat" +Arbitrary size floating point math package +.IP Math::BigInt 12 +.IX Item "Math::BigInt" +Arbitrary size integer math package +.IP Math::BigInt::Calc 12 +.IX Item "Math::BigInt::Calc" +Pure Perl module to support Math::BigInt +.IP Math::BigInt::FastCalc 12 +.IX Item "Math::BigInt::FastCalc" +Math::BigInt::Calc with some XS for more speed +.IP Math::BigInt::Lib 12 +.IX Item "Math::BigInt::Lib" +Virtual parent class for Math::BigInt libraries +.IP Math::BigRat 12 +.IX Item "Math::BigRat" +Arbitrary size rational number math package +.IP Math::Complex 12 +.IX Item "Math::Complex" +Complex numbers and associated mathematical functions +.IP Math::Trig 12 +.IX Item "Math::Trig" +Trigonometric functions +.IP Memoize 12 +.IX Item "Memoize" +Make functions faster by trading space for time +.IP Memoize::AnyDBM_File 12 +.IX Item "Memoize::AnyDBM_File" +Glue to provide EXISTS for AnyDBM_File for Storable use +.IP Memoize::Expire 12 +.IX Item "Memoize::Expire" +Plug-in module for automatic expiration of memoized values +.IP Memoize::NDBM_File 12 +.IX Item "Memoize::NDBM_File" +Glue to provide EXISTS for NDBM_File for Storable use +.IP Memoize::SDBM_File 12 +.IX Item "Memoize::SDBM_File" +DEPRECATED compability shim +.IP Memoize::Storable 12 +.IX Item "Memoize::Storable" +Store Memoized data in Storable database +.IP Module::CoreList 12 +.IX Item "Module::CoreList" +What modules shipped with versions of perl +.IP Module::CoreList::Utils 12 +.IX Item "Module::CoreList::Utils" +What utilities shipped with versions of perl +.IP Module::Load 12 +.IX Item "Module::Load" +Runtime require of both modules and files +.IP Module::Load::Conditional 12 +.IX Item "Module::Load::Conditional" +Looking up module information / loading at runtime +.IP Module::Loaded 12 +.IX Item "Module::Loaded" +Mark modules as loaded or unloaded +.IP Module::Metadata 12 +.IX Item "Module::Metadata" +Gather package and POD information from perl module files +.IP NDBM_File 12 +.IX Item "NDBM_File" +Tied access to ndbm files +.IP NEXT 12 +.IX Item "NEXT" +Provide a pseudo-class NEXT (et al) that allows method redispatch +.IP Net::Cmd 12 +.IX Item "Net::Cmd" +Network Command class (as used by FTP, SMTP etc) +.IP Net::Config 12 +.IX Item "Net::Config" +Local configuration data for libnet +.IP Net::Domain 12 +.IX Item "Net::Domain" +Attempt to evaluate the current host's internet name and domain +.IP Net::FTP 12 +.IX Item "Net::FTP" +FTP Client class +.IP Net::FTP::dataconn 12 +.IX Item "Net::FTP::dataconn" +FTP Client data connection class +.IP Net::NNTP 12 +.IX Item "Net::NNTP" +NNTP Client class +.IP Net::Netrc 12 +.IX Item "Net::Netrc" +OO interface to users netrc file +.IP Net::POP3 12 +.IX Item "Net::POP3" +Post Office Protocol 3 Client class (RFC1939) +.IP Net::Ping 12 +.IX Item "Net::Ping" +Check a remote host for reachability +.IP Net::SMTP 12 +.IX Item "Net::SMTP" +Simple Mail Transfer Protocol Client +.IP Net::Time 12 +.IX Item "Net::Time" +Time and daytime network client interface +.IP Net::hostent 12 +.IX Item "Net::hostent" +By-name interface to Perl's built-in gethost*() functions +.IP Net::libnetFAQ 12 +.IX Item "Net::libnetFAQ" +Libnet Frequently Asked Questions +.IP Net::netent 12 +.IX Item "Net::netent" +By-name interface to Perl's built-in getnet*() functions +.IP Net::protoent 12 +.IX Item "Net::protoent" +By-name interface to Perl's built-in getproto*() functions +.IP Net::servent 12 +.IX Item "Net::servent" +By-name interface to Perl's built-in getserv*() functions +.IP O 12 +.IX Item "O" +Generic interface to Perl Compiler backends +.IP ODBM_File 12 +.IX Item "ODBM_File" +Tied access to odbm files +.IP Opcode 12 +.IX Item "Opcode" +Disable named opcodes when compiling perl code +.IP POSIX 12 +.IX Item "POSIX" +Perl interface to IEEE Std 1003.1 +.IP Params::Check 12 +.IX Item "Params::Check" +A generic input parsing/checking mechanism. +.IP Parse::CPAN::Meta 12 +.IX Item "Parse::CPAN::Meta" +Parse META.yml and META.json CPAN metadata files +.IP Perl::OSType 12 +.IX Item "Perl::OSType" +Map Perl operating system names to generic types +.IP PerlIO 12 +.IX Item "PerlIO" +On demand loader for PerlIO layers and root of PerlIO::* name space +.IP PerlIO::encoding 12 +.IX Item "PerlIO::encoding" +Encoding layer +.IP PerlIO::mmap 12 +.IX Item "PerlIO::mmap" +Memory mapped IO +.IP PerlIO::scalar 12 +.IX Item "PerlIO::scalar" +In-memory IO, scalar IO +.IP PerlIO::via 12 +.IX Item "PerlIO::via" +Helper class for PerlIO layers implemented in perl +.IP PerlIO::via::QuotedPrint 12 +.IX Item "PerlIO::via::QuotedPrint" +PerlIO layer for quoted-printable strings +.IP Pod::Checker 12 +.IX Item "Pod::Checker" +Check pod documents for syntax errors +.IP Pod::Escapes 12 +.IX Item "Pod::Escapes" +For resolving Pod E<...> sequences +.IP Pod::Functions 12 +.IX Item "Pod::Functions" +Group Perl's functions a la perlfunc.pod +.IP Pod::Html 12 +.IX Item "Pod::Html" +Module to convert pod files to HTML +.IP Pod::Html::Util 12 +.IX Item "Pod::Html::Util" +Helper functions for Pod-Html +.IP Pod::Man 12 +.IX Item "Pod::Man" +Convert POD data to formatted *roff input +.IP Pod::ParseLink 12 +.IX Item "Pod::ParseLink" +Parse an L<> formatting code in POD text +.IP Pod::Perldoc 12 +.IX Item "Pod::Perldoc" +Look up Perl documentation in Pod format. +.IP Pod::Perldoc::BaseTo 12 +.IX Item "Pod::Perldoc::BaseTo" +Base for Pod::Perldoc formatters +.IP Pod::Perldoc::GetOptsOO 12 +.IX Item "Pod::Perldoc::GetOptsOO" +Customized option parser for Pod::Perldoc +.IP Pod::Perldoc::ToANSI 12 +.IX Item "Pod::Perldoc::ToANSI" +Render Pod with ANSI color escapes +.IP Pod::Perldoc::ToChecker 12 +.IX Item "Pod::Perldoc::ToChecker" +Let Perldoc check Pod for errors +.IP Pod::Perldoc::ToMan 12 +.IX Item "Pod::Perldoc::ToMan" +Let Perldoc render Pod as man pages +.IP Pod::Perldoc::ToNroff 12 +.IX Item "Pod::Perldoc::ToNroff" +Let Perldoc convert Pod to nroff +.IP Pod::Perldoc::ToPod 12 +.IX Item "Pod::Perldoc::ToPod" +Let Perldoc render Pod as ... Pod! +.IP Pod::Perldoc::ToRtf 12 +.IX Item "Pod::Perldoc::ToRtf" +Let Perldoc render Pod as RTF +.IP Pod::Perldoc::ToTerm 12 +.IX Item "Pod::Perldoc::ToTerm" +Render Pod with terminal escapes +.IP Pod::Perldoc::ToText 12 +.IX Item "Pod::Perldoc::ToText" +Let Perldoc render Pod as plaintext +.IP Pod::Perldoc::ToTk 12 +.IX Item "Pod::Perldoc::ToTk" +Let Perldoc use Tk::Pod to render Pod +.IP Pod::Perldoc::ToXml 12 +.IX Item "Pod::Perldoc::ToXml" +Let Perldoc render Pod as XML +.IP Pod::Simple 12 +.IX Item "Pod::Simple" +Framework for parsing Pod +.IP Pod::Simple::Checker 12 +.IX Item "Pod::Simple::Checker" +Check the Pod syntax of a document +.IP Pod::Simple::Debug 12 +.IX Item "Pod::Simple::Debug" +Put Pod::Simple into trace/debug mode +.IP Pod::Simple::DumpAsText 12 +.IX Item "Pod::Simple::DumpAsText" +Dump Pod-parsing events as text +.IP Pod::Simple::DumpAsXML 12 +.IX Item "Pod::Simple::DumpAsXML" +Turn Pod into XML +.IP Pod::Simple::HTML 12 +.IX Item "Pod::Simple::HTML" +Convert Pod to HTML +.IP Pod::Simple::HTMLBatch 12 +.IX Item "Pod::Simple::HTMLBatch" +Convert several Pod files to several HTML files +.IP Pod::Simple::JustPod 12 +.IX Item "Pod::Simple::JustPod" +Just the Pod, the whole Pod, and nothing but the Pod +.IP Pod::Simple::LinkSection 12 +.IX Item "Pod::Simple::LinkSection" +Represent "section" attributes of L codes +.IP Pod::Simple::Methody 12 +.IX Item "Pod::Simple::Methody" +Turn Pod::Simple events into method calls +.IP Pod::Simple::PullParser 12 +.IX Item "Pod::Simple::PullParser" +A pull-parser interface to parsing Pod +.IP Pod::Simple::PullParserEndToken 12 +.IX Item "Pod::Simple::PullParserEndToken" +End-tokens from Pod::Simple::PullParser +.IP Pod::Simple::PullParserStartToken 12 +.IX Item "Pod::Simple::PullParserStartToken" +Start-tokens from Pod::Simple::PullParser +.IP Pod::Simple::PullParserTextToken 12 +.IX Item "Pod::Simple::PullParserTextToken" +Text-tokens from Pod::Simple::PullParser +.IP Pod::Simple::PullParserToken 12 +.IX Item "Pod::Simple::PullParserToken" +Tokens from Pod::Simple::PullParser +.IP Pod::Simple::RTF 12 +.IX Item "Pod::Simple::RTF" +Format Pod as RTF +.IP Pod::Simple::Search 12 +.IX Item "Pod::Simple::Search" +Find POD documents in directory trees +.IP Pod::Simple::SimpleTree 12 +.IX Item "Pod::Simple::SimpleTree" +Parse Pod into a simple parse tree +.IP Pod::Simple::Subclassing 12 +.IX Item "Pod::Simple::Subclassing" +Write a formatter as a Pod::Simple subclass +.IP Pod::Simple::Text 12 +.IX Item "Pod::Simple::Text" +Format Pod as plaintext +.IP Pod::Simple::TextContent 12 +.IX Item "Pod::Simple::TextContent" +Get the text content of Pod +.IP Pod::Simple::XHTML 12 +.IX Item "Pod::Simple::XHTML" +Format Pod as validating XHTML +.IP Pod::Simple::XMLOutStream 12 +.IX Item "Pod::Simple::XMLOutStream" +Turn Pod into XML +.IP Pod::Text 12 +.IX Item "Pod::Text" +Convert POD data to formatted text +.IP Pod::Text::Color 12 +.IX Item "Pod::Text::Color" +Convert POD data to formatted color ASCII text +.IP Pod::Text::Overstrike 12 +.IX Item "Pod::Text::Overstrike" +Convert POD data to formatted overstrike text +.IP Pod::Text::Termcap 12 +.IX Item "Pod::Text::Termcap" +Convert POD data to ASCII text with format escapes +.IP Pod::Usage 12 +.IX Item "Pod::Usage" +Extracts POD documentation and shows usage information +.IP SDBM_File 12 +.IX Item "SDBM_File" +Tied access to sdbm files +.IP Safe 12 +.IX Item "Safe" +Compile and execute code in restricted compartments +.IP Scalar::Util 12 +.IX Item "Scalar::Util" +A selection of general-utility scalar subroutines +.IP Search::Dict 12 +.IX Item "Search::Dict" +Look \- search for key in dictionary file +.IP SelectSaver 12 +.IX Item "SelectSaver" +Save and restore selected file handle +.IP SelfLoader 12 +.IX Item "SelfLoader" +Load functions only on demand +.IP Storable 12 +.IX Item "Storable" +Persistence for Perl data structures +.IP Sub::Util 12 +.IX Item "Sub::Util" +A selection of utility subroutines for subs and CODE references +.IP Symbol 12 +.IX Item "Symbol" +Manipulate Perl symbols and their names +.IP Sys::Hostname 12 +.IX Item "Sys::Hostname" +Try every conceivable way to get hostname +.IP Sys::Syslog 12 +.IX Item "Sys::Syslog" +Perl interface to the UNIX \fBsyslog\fR\|(3) calls +.IP Sys::Syslog::Win32 12 +.IX Item "Sys::Syslog::Win32" +Win32 support for Sys::Syslog +.IP TAP::Base 12 +.IX Item "TAP::Base" +Base class that provides common functionality to TAP::Parser +.IP TAP::Formatter::Base 12 +.IX Item "TAP::Formatter::Base" +Base class for harness output delegates +.IP TAP::Formatter::Color 12 +.IX Item "TAP::Formatter::Color" +Run Perl test scripts with color +.IP TAP::Formatter::Console 12 +.IX Item "TAP::Formatter::Console" +Harness output delegate for default console output +.IP TAP::Formatter::Console::ParallelSession 12 +.IX Item "TAP::Formatter::Console::ParallelSession" +Harness output delegate for parallel console output +.IP TAP::Formatter::Console::Session 12 +.IX Item "TAP::Formatter::Console::Session" +Harness output delegate for default console output +.IP TAP::Formatter::File 12 +.IX Item "TAP::Formatter::File" +Harness output delegate for file output +.IP TAP::Formatter::File::Session 12 +.IX Item "TAP::Formatter::File::Session" +Harness output delegate for file output +.IP TAP::Formatter::Session 12 +.IX Item "TAP::Formatter::Session" +Abstract base class for harness output delegate +.IP TAP::Harness 12 +.IX Item "TAP::Harness" +Run test scripts with statistics +.IP TAP::Harness::Env 12 +.IX Item "TAP::Harness::Env" +Parsing harness related environmental variables where appropriate +.IP TAP::Object 12 +.IX Item "TAP::Object" +Base class that provides common functionality to all \f(CW\*(C`TAP::*\*(C'\fR modules +.IP TAP::Parser 12 +.IX Item "TAP::Parser" +Parse TAP output +.IP TAP::Parser::Aggregator 12 +.IX Item "TAP::Parser::Aggregator" +Aggregate TAP::Parser results +.IP TAP::Parser::Grammar 12 +.IX Item "TAP::Parser::Grammar" +A grammar for the Test Anything Protocol. +.IP TAP::Parser::Iterator 12 +.IX Item "TAP::Parser::Iterator" +Base class for TAP source iterators +.IP TAP::Parser::Iterator::Array 12 +.IX Item "TAP::Parser::Iterator::Array" +Iterator for array-based TAP sources +.IP TAP::Parser::Iterator::Process 12 +.IX Item "TAP::Parser::Iterator::Process" +Iterator for process-based TAP sources +.IP TAP::Parser::Iterator::Stream 12 +.IX Item "TAP::Parser::Iterator::Stream" +Iterator for filehandle-based TAP sources +.IP TAP::Parser::IteratorFactory 12 +.IX Item "TAP::Parser::IteratorFactory" +Figures out which SourceHandler objects to use for a given Source +.IP TAP::Parser::Multiplexer 12 +.IX Item "TAP::Parser::Multiplexer" +Multiplex multiple TAP::Parsers +.IP TAP::Parser::Result 12 +.IX Item "TAP::Parser::Result" +Base class for TAP::Parser output objects +.IP TAP::Parser::Result::Bailout 12 +.IX Item "TAP::Parser::Result::Bailout" +Bailout result token. +.IP TAP::Parser::Result::Comment 12 +.IX Item "TAP::Parser::Result::Comment" +Comment result token. +.IP TAP::Parser::Result::Plan 12 +.IX Item "TAP::Parser::Result::Plan" +Plan result token. +.IP TAP::Parser::Result::Pragma 12 +.IX Item "TAP::Parser::Result::Pragma" +TAP pragma token. +.IP TAP::Parser::Result::Test 12 +.IX Item "TAP::Parser::Result::Test" +Test result token. +.IP TAP::Parser::Result::Unknown 12 +.IX Item "TAP::Parser::Result::Unknown" +Unknown result token. +.IP TAP::Parser::Result::Version 12 +.IX Item "TAP::Parser::Result::Version" +TAP syntax version token. +.IP TAP::Parser::Result::YAML 12 +.IX Item "TAP::Parser::Result::YAML" +YAML result token. +.IP TAP::Parser::ResultFactory 12 +.IX Item "TAP::Parser::ResultFactory" +Factory for creating TAP::Parser output objects +.IP TAP::Parser::Scheduler 12 +.IX Item "TAP::Parser::Scheduler" +Schedule tests during parallel testing +.IP TAP::Parser::Scheduler::Job 12 +.IX Item "TAP::Parser::Scheduler::Job" +A single testing job. +.IP TAP::Parser::Scheduler::Spinner 12 +.IX Item "TAP::Parser::Scheduler::Spinner" +A no-op job. +.IP TAP::Parser::Source 12 +.IX Item "TAP::Parser::Source" +A TAP source & meta data about it +.IP TAP::Parser::SourceHandler 12 +.IX Item "TAP::Parser::SourceHandler" +Base class for different TAP source handlers +.IP TAP::Parser::SourceHandler::Executable 12 +.IX Item "TAP::Parser::SourceHandler::Executable" +Stream output from an executable TAP source +.IP TAP::Parser::SourceHandler::File 12 +.IX Item "TAP::Parser::SourceHandler::File" +Stream TAP from a text file. +.IP TAP::Parser::SourceHandler::Handle 12 +.IX Item "TAP::Parser::SourceHandler::Handle" +Stream TAP from an IO::Handle or a GLOB. +.IP TAP::Parser::SourceHandler::Perl 12 +.IX Item "TAP::Parser::SourceHandler::Perl" +Stream TAP from a Perl executable +.IP TAP::Parser::SourceHandler::RawTAP 12 +.IX Item "TAP::Parser::SourceHandler::RawTAP" +Stream output from raw TAP in a scalar/array ref. +.IP TAP::Parser::YAMLish::Reader 12 +.IX Item "TAP::Parser::YAMLish::Reader" +Read YAMLish data from iterator +.IP TAP::Parser::YAMLish::Writer 12 +.IX Item "TAP::Parser::YAMLish::Writer" +Write YAMLish data +.IP Term::ANSIColor 12 +.IX Item "Term::ANSIColor" +Color screen output using ANSI escape sequences +.IP Term::Cap 12 +.IX Item "Term::Cap" +Perl termcap interface +.IP Term::Complete 12 +.IX Item "Term::Complete" +Perl word completion module +.IP Term::ReadLine 12 +.IX Item "Term::ReadLine" +Perl interface to various \f(CW\*(C`readline\*(C'\fR packages. +.IP Test 12 +.IX Item "Test" +Provides a simple framework for writing test scripts +.IP Test2 12 +.IX Item "Test2" +Framework for writing test tools that all work together. +.IP Test2::API 12 +.IX Item "Test2::API" +Primary interface for writing Test2 based testing tools. +.IP Test2::API::Breakage 12 +.IX Item "Test2::API::Breakage" +What breaks at what version +.IP Test2::API::Context 12 +.IX Item "Test2::API::Context" +Object to represent a testing context. +.IP Test2::API::Instance 12 +.IX Item "Test2::API::Instance" +Object used by Test2::API under the hood +.IP Test2::API::InterceptResult 12 +.IX Item "Test2::API::InterceptResult" +Representation of a list of events. +.IP Test2::API::InterceptResult::Event 12 +.IX Item "Test2::API::InterceptResult::Event" +Representation of an event for use in +.IP Test2::API::InterceptResult::Hub 12 +.IX Item "Test2::API::InterceptResult::Hub" +Hub used by InterceptResult. +.IP Test2::API::InterceptResult::Squasher 12 +.IX Item "Test2::API::InterceptResult::Squasher" +Encapsulation of the algorithm that +.IP Test2::API::Stack 12 +.IX Item "Test2::API::Stack" +Object to manage a stack of Test2::Hub +.IP Test2::Event 12 +.IX Item "Test2::Event" +Base class for events +.IP Test2::Event::Bail 12 +.IX Item "Test2::Event::Bail" +Bailout! +.IP Test2::Event::Diag 12 +.IX Item "Test2::Event::Diag" +Diag event type +.IP Test2::Event::Encoding 12 +.IX Item "Test2::Event::Encoding" +Set the encoding for the output stream +.IP Test2::Event::Exception 12 +.IX Item "Test2::Event::Exception" +Exception event +.IP Test2::Event::Fail 12 +.IX Item "Test2::Event::Fail" +Event for a simple failed assertion +.IP Test2::Event::Generic 12 +.IX Item "Test2::Event::Generic" +Generic event type. +.IP Test2::Event::Note 12 +.IX Item "Test2::Event::Note" +Note event type +.IP Test2::Event::Ok 12 +.IX Item "Test2::Event::Ok" +Ok event type +.IP Test2::Event::Pass 12 +.IX Item "Test2::Event::Pass" +Event for a simple passing assertion +.IP Test2::Event::Plan 12 +.IX Item "Test2::Event::Plan" +The event of a plan +.IP Test2::Event::Skip 12 +.IX Item "Test2::Event::Skip" +Skip event type +.IP Test2::Event::Subtest 12 +.IX Item "Test2::Event::Subtest" +Event for subtest types +.IP Test2::Event::TAP::Version 12 +.IX Item "Test2::Event::TAP::Version" +Event for TAP version. +.IP Test2::Event::V2 12 +.IX Item "Test2::Event::V2" +Second generation event. +.IP Test2::Event::Waiting 12 +.IX Item "Test2::Event::Waiting" +Tell all procs/threads it is time to be done +.IP Test2::EventFacet 12 +.IX Item "Test2::EventFacet" +Base class for all event facets. +.IP Test2::EventFacet::About 12 +.IX Item "Test2::EventFacet::About" +Facet with event details. +.IP Test2::EventFacet::Amnesty 12 +.IX Item "Test2::EventFacet::Amnesty" +Facet for assertion amnesty. +.IP Test2::EventFacet::Assert 12 +.IX Item "Test2::EventFacet::Assert" +Facet representing an assertion. +.IP Test2::EventFacet::Control 12 +.IX Item "Test2::EventFacet::Control" +Facet for hub actions and behaviors. +.IP Test2::EventFacet::Error 12 +.IX Item "Test2::EventFacet::Error" +Facet for errors that need to be shown. +.IP Test2::EventFacet::Hub 12 +.IX Item "Test2::EventFacet::Hub" +Facet for the hubs an event passes through. +.IP Test2::EventFacet::Info 12 +.IX Item "Test2::EventFacet::Info" +Facet for information a developer might care about. +.IP Test2::EventFacet::Info::Table 12 +.IX Item "Test2::EventFacet::Info::Table" +Intermediary representation of a table. +.IP Test2::EventFacet::Meta 12 +.IX Item "Test2::EventFacet::Meta" +Facet for meta-data +.IP Test2::EventFacet::Parent 12 +.IX Item "Test2::EventFacet::Parent" +Facet for events contains other events +.IP Test2::EventFacet::Plan 12 +.IX Item "Test2::EventFacet::Plan" +Facet for setting the plan +.IP Test2::EventFacet::Render 12 +.IX Item "Test2::EventFacet::Render" +Facet that dictates how to render an event. +.IP Test2::EventFacet::Trace 12 +.IX Item "Test2::EventFacet::Trace" +Debug information for events +.IP Test2::Formatter 12 +.IX Item "Test2::Formatter" +Namespace for formatters. +.IP Test2::Formatter::TAP 12 +.IX Item "Test2::Formatter::TAP" +Standard TAP formatter +.IP Test2::Hub 12 +.IX Item "Test2::Hub" +The conduit through which all events flow. +.IP Test2::Hub::Interceptor 12 +.IX Item "Test2::Hub::Interceptor" +Hub used by interceptor to grab results. +.IP Test2::Hub::Interceptor::Terminator 12 +.IX Item "Test2::Hub::Interceptor::Terminator" +Exception class used by +.IP Test2::Hub::Subtest 12 +.IX Item "Test2::Hub::Subtest" +Hub used by subtests +.IP Test2::IPC 12 +.IX Item "Test2::IPC" +Turn on IPC for threading or forking support. +.IP Test2::IPC::Driver 12 +.IX Item "Test2::IPC::Driver" +Base class for Test2 IPC drivers. +.IP Test2::IPC::Driver::Files 12 +.IX Item "Test2::IPC::Driver::Files" +Temp dir + Files concurrency model. +.IP Test2::Tools::Tiny 12 +.IX Item "Test2::Tools::Tiny" +Tiny set of tools for unfortunate souls who cannot use +.IP Test2::Transition 12 +.IX Item "Test2::Transition" +Transition notes when upgrading to Test2 +.IP Test2::Util 12 +.IX Item "Test2::Util" +Tools used by Test2 and friends. +.IP Test2::Util::ExternalMeta 12 +.IX Item "Test2::Util::ExternalMeta" +Allow third party tools to safely attach meta-data +.IP Test2::Util::Facets2Legacy 12 +.IX Item "Test2::Util::Facets2Legacy" +Convert facet data to the legacy event API. +.IP Test2::Util::HashBase 12 +.IX Item "Test2::Util::HashBase" +Build hash based classes. +.IP Test2::Util::Trace 12 +.IX Item "Test2::Util::Trace" +Legacy wrapper fro Test2::EventFacet::Trace. +.IP Test::Builder 12 +.IX Item "Test::Builder" +Backend for building test libraries +.IP Test::Builder::Formatter 12 +.IX Item "Test::Builder::Formatter" +Test::Builder subclass of Test2::Formatter::TAP +.IP Test::Builder::IO::Scalar 12 +.IX Item "Test::Builder::IO::Scalar" +A copy of IO::Scalar for Test::Builder +.IP Test::Builder::Module 12 +.IX Item "Test::Builder::Module" +Base class for test modules +.IP Test::Builder::Tester 12 +.IX Item "Test::Builder::Tester" +Test testsuites that have been built with +.IP Test::Builder::Tester::Color 12 +.IX Item "Test::Builder::Tester::Color" +Turn on colour in Test::Builder::Tester +.IP Test::Builder::TodoDiag 12 +.IX Item "Test::Builder::TodoDiag" +Test::Builder subclass of Test2::Event::Diag +.IP Test::Harness 12 +.IX Item "Test::Harness" +Run Perl standard test scripts with statistics +.IP Test::Harness::Beyond 12 +.IX Item "Test::Harness::Beyond" +Beyond make test +.IP Test::More 12 +.IX Item "Test::More" +Yet another framework for writing test scripts +.IP Test::Simple 12 +.IX Item "Test::Simple" +Basic utilities for writing tests. +.IP Test::Tester 12 +.IX Item "Test::Tester" +Ease testing test modules built with Test::Builder +.IP Test::Tester::Capture 12 +.IX Item "Test::Tester::Capture" +Help testing test modules built with Test::Builder +.IP Test::Tester::CaptureRunner 12 +.IX Item "Test::Tester::CaptureRunner" +Help testing test modules built with Test::Builder +.IP Test::Tutorial 12 +.IX Item "Test::Tutorial" +A tutorial about writing really basic tests +.IP Test::use::ok 12 +.IX Item "Test::use::ok" +Alternative to Test::More::use_ok +.IP Text::Abbrev 12 +.IX Item "Text::Abbrev" +Abbrev \- create an abbreviation table from a list +.IP Text::Balanced 12 +.IX Item "Text::Balanced" +Extract delimited text sequences from strings. +.IP Text::ParseWords 12 +.IX Item "Text::ParseWords" +Parse text into an array of tokens or array of arrays +.IP Text::Tabs 12 +.IX Item "Text::Tabs" +Expand and unexpand tabs like unix \fBexpand\fR\|(1) and \fBunexpand\fR\|(1) +.IP Text::Wrap 12 +.IX Item "Text::Wrap" +Line wrapping to form simple paragraphs +.IP Thread 12 +.IX Item "Thread" +Manipulate threads in Perl (for old code only) +.IP Thread::Queue 12 +.IX Item "Thread::Queue" +Thread-safe queues +.IP Thread::Semaphore 12 +.IX Item "Thread::Semaphore" +Thread-safe semaphores +.IP Tie::Array 12 +.IX Item "Tie::Array" +Base class for tied arrays +.IP Tie::File 12 +.IX Item "Tie::File" +Access the lines of a disk file via a Perl array +.IP Tie::Handle 12 +.IX Item "Tie::Handle" +Base class definitions for tied handles +.IP Tie::Hash 12 +.IX Item "Tie::Hash" +Base class definitions for tied hashes +.IP Tie::Hash::NamedCapture 12 +.IX Item "Tie::Hash::NamedCapture" +Named regexp capture buffers +.IP Tie::Memoize 12 +.IX Item "Tie::Memoize" +Add data to hash when needed +.IP Tie::RefHash 12 +.IX Item "Tie::RefHash" +Use references as hash keys +.IP Tie::Scalar 12 +.IX Item "Tie::Scalar" +Base class definitions for tied scalars +.IP Tie::StdHandle 12 +.IX Item "Tie::StdHandle" +Base class definitions for tied handles +.IP Tie::SubstrHash 12 +.IX Item "Tie::SubstrHash" +Fixed-table-size, fixed-key-length hashing +.IP Time::HiRes 12 +.IX Item "Time::HiRes" +High resolution alarm, sleep, gettimeofday, interval timers +.IP Time::Local 12 +.IX Item "Time::Local" +Efficiently compute time from local and GMT time +.IP Time::Piece 12 +.IX Item "Time::Piece" +Object Oriented time objects +.IP Time::Seconds 12 +.IX Item "Time::Seconds" +A simple API to convert seconds to other date values +.IP Time::gmtime 12 +.IX Item "Time::gmtime" +By-name interface to Perl's built-in \fBgmtime()\fR function +.IP Time::localtime 12 +.IX Item "Time::localtime" +By-name interface to Perl's built-in \fBlocaltime()\fR function +.IP Time::tm 12 +.IX Item "Time::tm" +Internal object used by Time::gmtime and Time::localtime +.IP UNIVERSAL 12 +.IX Item "UNIVERSAL" +Base class for ALL classes (blessed references) +.IP Unicode::Collate 12 +.IX Item "Unicode::Collate" +Unicode Collation Algorithm +.IP Unicode::Collate::CJK::Big5 12 +.IX Item "Unicode::Collate::CJK::Big5" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::CJK::GB2312 12 +.IX Item "Unicode::Collate::CJK::GB2312" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::CJK::JISX0208 12 +.IX Item "Unicode::Collate::CJK::JISX0208" +Weighting JIS KANJI for Unicode::Collate +.IP Unicode::Collate::CJK::Korean 12 +.IX Item "Unicode::Collate::CJK::Korean" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::CJK::Pinyin 12 +.IX Item "Unicode::Collate::CJK::Pinyin" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::CJK::Stroke 12 +.IX Item "Unicode::Collate::CJK::Stroke" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::CJK::Zhuyin 12 +.IX Item "Unicode::Collate::CJK::Zhuyin" +Weighting CJK Unified Ideographs +.IP Unicode::Collate::Locale 12 +.IX Item "Unicode::Collate::Locale" +Linguistic tailoring for DUCET via Unicode::Collate +.IP Unicode::Normalize 12 +.IX Item "Unicode::Normalize" +Unicode Normalization Forms +.IP Unicode::UCD 12 +.IX Item "Unicode::UCD" +Unicode character database +.IP User::grent 12 +.IX Item "User::grent" +By-name interface to Perl's built-in getgr*() functions +.IP User::pwent 12 +.IX Item "User::pwent" +By-name interface to Perl's built-in getpw*() functions +.IP VMS::DCLsym 12 +.IX Item "VMS::DCLsym" +Perl extension to manipulate DCL symbols +.IP VMS::Filespec 12 +.IX Item "VMS::Filespec" +Convert between VMS and Unix file specification syntax +.IP VMS::Stdio 12 +.IX Item "VMS::Stdio" +Standard I/O functions via VMS extensions +.IP Win32 12 +.IX Item "Win32" +Interfaces to some Win32 API Functions +.IP Win32API::File 12 +.IX Item "Win32API::File" +Low-level access to Win32 system API calls for files/dirs. +.IP Win32CORE 12 +.IX Item "Win32CORE" +Win32 CORE function stubs +.IP XS::APItest 12 +.IX Item "XS::APItest" +Test the perl C API +.IP XS::Typemap 12 +.IX Item "XS::Typemap" +Module to test the XS typemaps distributed with perl +.IP XSLoader 12 +.IX Item "XSLoader" +Dynamically load C libraries into Perl code +.IP autodie::Scope::Guard 12 +.IX Item "autodie::Scope::Guard" +Wrapper class for calling subs at end of scope +.IP autodie::Scope::GuardStack 12 +.IX Item "autodie::Scope::GuardStack" +Hook stack for managing scopes via %^H +.IP autodie::Util 12 +.IX Item "autodie::Util" +Internal Utility subroutines for autodie and Fatal +.IP version::Internals 12 +.IX Item "version::Internals" +Perl extension for Version Objects +.PP +To find out \fIall\fR modules installed on your system, including +those without documentation or outside the standard release, +just use the following command (under the default win32 shell, +double quotes should be used instead of single quotes). +.PP +.Vb 3 +\& % perl \-MFile::Find=find \-MFile::Spec::Functions \-Tlwe \e +\& \*(Aqfind { wanted => sub { print canonpath $_ if /\e.pm\ez/ }, +\& no_chdir => 1 }, @INC\*(Aq +.Ve +.PP +(The \-T is here to prevent \f(CW@INC\fR from being populated by \f(CW\*(C`PERL5LIB\*(C'\fR, +\&\f(CW\*(C`PERLLIB\*(C'\fR, and \f(CW\*(C`PERL_USE_UNSAFE_INC\*(C'\fR.) +They should all have their own documentation installed and accessible +via your system \fBman\fR\|(1) command. If you do not have a \fBfind\fR +program, you can use the Perl \fBfind2perl\fR program instead, which +generates Perl code as output you can run through perl. If you +have a \fBman\fR program but it doesn't find your modules, you'll have +to fix your manpath. See perl for details. If you have no +system \fBman\fR command, you might try the \fBperldoc\fR program. +.PP +Note also that the command \f(CW\*(C`perldoc perllocal\*(C'\fR gives you a (possibly +incomplete) list of the modules that have been further installed on +your system. (The perllocal.pod file is updated by the standard MakeMaker +install process.) +.SS "Extension Modules" +.IX Subsection "Extension Modules" +Extension modules are written in C (or a mix of Perl and C). They +are usually dynamically loaded into Perl if and when you need them, +but may also be linked in statically. Supported extension modules +include Socket, Fcntl, and POSIX. +.PP +Many popular C extension modules do not come bundled (at least, not +completely) due to their sizes, volatility, or simply lack of time +for adequate testing and configuration across the multitude of +platforms on which Perl was beta-tested. You are encouraged to +look for them on CPAN (described below), or using web search engines +like Google or DuckDuckGo. +.SH CPAN +.IX Header "CPAN" +CPAN stands for Comprehensive Perl Archive Network; it's a globally +replicated trove of Perl materials, including documentation, style +guides, tricks and traps, alternate ports to non-Unix systems and +occasional binary distributions for these. Search engines for +CPAN can be found at https://www.cpan.org/ +.PP +Most importantly, CPAN includes around a thousand unbundled modules, +some of which require a C compiler to build. Major categories of +modules are: +.IP \(bu 4 +Language Extensions and Documentation Tools +.IP \(bu 4 +Development Support +.IP \(bu 4 +Operating System Interfaces +.IP \(bu 4 +Networking, Device Control (modems) and InterProcess Communication +.IP \(bu 4 +Data Types and Data Type Utilities +.IP \(bu 4 +Database Interfaces +.IP \(bu 4 +User Interfaces +.IP \(bu 4 +Interfaces to / Emulations of Other Programming Languages +.IP \(bu 4 +File Names, File Systems and File Locking (see also File Handles) +.IP \(bu 4 +String Processing, Language Text Processing, Parsing, and Searching +.IP \(bu 4 +Option, Argument, Parameter, and Configuration File Processing +.IP \(bu 4 +Internationalization and Locale +.IP \(bu 4 +Authentication, Security, and Encryption +.IP \(bu 4 +World Wide Web, HTML, HTTP, CGI, MIME +.IP \(bu 4 +Server and Daemon Utilities +.IP \(bu 4 +Archiving and Compression +.IP \(bu 4 +Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing +.IP \(bu 4 +Mail and Usenet News +.IP \(bu 4 +Control Flow Utilities (callbacks and exceptions etc) +.IP \(bu 4 +File Handle and Input/Output Stream Utilities +.IP \(bu 4 +Miscellaneous Modules +.PP +You can find the CPAN online at <https://www.cpan.org/> +.SH "Modules: Creation, Use, and Abuse" +.IX Header "Modules: Creation, Use, and Abuse" +(The following section is borrowed directly from Tim Bunce's modules +file, available at your nearest CPAN site.) +.PP +Perl implements a class using a package, but the presence of a +package doesn't imply the presence of a class. A package is just a +namespace. A class is a package that provides subroutines that can be +used as methods. A method is just a subroutine that expects, as its +first argument, either the name of a package (for "static" methods), +or a reference to something (for "virtual" methods). +.PP +A module is a file that (by convention) provides a class of the same +name (sans the .pm), plus an import method in that class that can be +called to fetch exported symbols. This module may implement some of +its methods by loading dynamic C or C++ objects, but that should be +totally transparent to the user of the module. Likewise, the module +might set up an AUTOLOAD function to slurp in subroutine definitions on +demand, but this is also transparent. Only the \fI.pm\fR file is required to +exist. See perlsub, perlobj, and AutoLoader for details about +the AUTOLOAD mechanism. +.SS "Guidelines for Module Creation" +.IX Subsection "Guidelines for Module Creation" +.IP \(bu 4 +Do similar modules already exist in some form? +.Sp +If so, please try to reuse the existing modules either in whole or +by inheriting useful features into a new class. If this is not +practical try to get together with the module authors to work on +extending or enhancing the functionality of the existing modules. +A perfect example is the plethora of packages in perl4 for dealing +with command line options. +.Sp +If you are writing a module to expand an already existing set of +modules, please coordinate with the author of the package. It +helps if you follow the same naming scheme and module interaction +scheme as the original author. +.IP \(bu 4 +Try to design the new module to be easy to extend and reuse. +.Sp +Try to \f(CW\*(C`use warnings;\*(C'\fR (or \f(CW\*(C`use warnings qw(...);\*(C'\fR). +Remember that you can add \f(CW\*(C`no warnings qw(...);\*(C'\fR to individual blocks +of code that need less warnings. +.Sp +Use blessed references. Use the two argument form of bless to bless +into the class name given as the first parameter of the constructor, +e.g.,: +.Sp +.Vb 4 +\& sub new { +\& my $class = shift; +\& return bless {}, $class; +\& } +.Ve +.Sp +or even this if you'd like it to be used as either a static +or a virtual method. +.Sp +.Vb 5 +\& sub new { +\& my $self = shift; +\& my $class = ref($self) || $self; +\& return bless {}, $class; +\& } +.Ve +.Sp +Pass arrays as references so more parameters can be added later +(it's also faster). Convert functions into methods where +appropriate. Split large methods into smaller more flexible ones. +Inherit methods from other modules if appropriate. +.Sp +Avoid class name tests like: \f(CW\*(C`die "Invalid" unless ref $ref eq \*(AqFOO\*(Aq\*(C'\fR. +Generally you can delete the \f(CW\*(C`eq \*(AqFOO\*(Aq\*(C'\fR part with no harm at all. +Let the objects look after themselves! Generally, avoid hard-wired +class names as far as possible. +.Sp +Avoid \f(CW\*(C`$r\->Class::func()\*(C'\fR where using \f(CW\*(C`@ISA=qw(... Class ...)\*(C'\fR and +\&\f(CW\*(C`$r\->func()\*(C'\fR would work. +.Sp +Use autosplit so little used or newly added functions won't be a +burden to programs that don't use them. Add test functions to +the module after _\|_END_\|_ either using AutoSplit or by saying: +.Sp +.Vb 1 +\& eval join(\*(Aq\*(Aq,<main::DATA>) || die $@ unless caller(); +.Ve +.Sp +Does your module pass the 'empty subclass' test? If you say +\&\f(CW\*(C`@SUBCLASS::ISA = qw(YOURCLASS);\*(C'\fR your applications should be able +to use SUBCLASS in exactly the same way as YOURCLASS. For example, +does your application still work if you change: \f(CW\*(C`$obj = YOURCLASS\->new();\*(C'\fR +into: \f(CW\*(C`$obj = SUBCLASS\->new();\*(C'\fR ? +.Sp +Avoid keeping any state information in your packages. It makes it +difficult for multiple other packages to use yours. Keep state +information in objects. +.Sp +Always use \fB\-w\fR. +.Sp +Try to \f(CW\*(C`use strict;\*(C'\fR (or \f(CW\*(C`use strict qw(...);\*(C'\fR). +Remember that you can add \f(CW\*(C`no strict qw(...);\*(C'\fR to individual blocks +of code that need less strictness. +.Sp +Always use \fB\-w\fR. +.Sp +Follow the guidelines in perlstyle. +.Sp +Always use \fB\-w\fR. +.IP \(bu 4 +Some simple style guidelines +.Sp +The perlstyle manual supplied with Perl has many helpful points. +.Sp +Coding style is a matter of personal taste. Many people evolve their +style over several years as they learn what helps them write and +maintain good code. Here's one set of assorted suggestions that +seem to be widely used by experienced developers: +.Sp +Use underscores to separate words. It is generally easier to read +\&\f(CW$var_names_like_this\fR than \f(CW$VarNamesLikeThis\fR, especially for +non-native speakers of English. It's also a simple rule that works +consistently with VAR_NAMES_LIKE_THIS. +.Sp +Package/Module names are an exception to this rule. Perl informally +reserves lowercase module names for 'pragma' modules like integer +and strict. Other modules normally begin with a capital letter and +use mixed case with no underscores (need to be short and portable). +.Sp +You may find it helpful to use letter case to indicate the scope +or nature of a variable. For example: +.Sp +.Vb 3 +\& $ALL_CAPS_HERE constants only (beware clashes with Perl vars) +\& $Some_Caps_Here package\-wide global/static +\& $no_caps_here function scope my() or local() variables +.Ve +.Sp +Function and method names seem to work best as all lowercase. +e.g., \f(CW\*(C`$obj\->as_string()\*(C'\fR. +.Sp +You can use a leading underscore to indicate that a variable or +function should not be used outside the package that defined it. +.IP \(bu 4 +Select what to export. +.Sp +Do NOT export method names! +.Sp +Do NOT export anything else by default without a good reason! +.Sp +Exports pollute the namespace of the module user. If you must +export try to use \f(CW@EXPORT_OK\fR in preference to \f(CW@EXPORT\fR and avoid +short or common names to reduce the risk of name clashes. +.Sp +Generally anything not exported is still accessible from outside the +module using the ModuleName::item_name (or \f(CW\*(C`$blessed_ref\->method\*(C'\fR) +syntax. By convention you can use a leading underscore on names to +indicate informally that they are 'internal' and not for public use. +.Sp +(It is actually possible to get private functions by saying: +\&\f(CW\*(C`my $subref = sub { ... }; &$subref;\*(C'\fR. But there's no way to call that +directly as a method, because a method must have a name in the symbol +table.) +.Sp +As a general rule, if the module is trying to be object oriented +then export nothing. If it's just a collection of functions then +\&\f(CW@EXPORT_OK\fR anything but use \f(CW@EXPORT\fR with caution. +.IP \(bu 4 +Select a name for the module. +.Sp +This name should be as descriptive, accurate, and complete as +possible. Avoid any risk of ambiguity. Always try to use two or +more whole words. Generally the name should reflect what is special +about what the module does rather than how it does it. Please use +nested module names to group informally or categorize a module. +There should be a very good reason for a module not to have a nested name. +Module names should begin with a capital letter. +.Sp +Having 57 modules all called Sort will not make life easy for anyone +(though having 23 called Sort::Quick is only marginally better :\-). +Imagine someone trying to install your module alongside many others. +.Sp +If you are developing a suite of related modules/classes it's good +practice to use nested classes with a common prefix as this will +avoid namespace clashes. For example: Xyz::Control, Xyz::View, +Xyz::Model etc. Use the modules in this list as a naming guide. +.Sp +If adding a new module to a set, follow the original author's +standards for naming modules and the interface to methods in +those modules. +.Sp +If developing modules for private internal or project specific use, +that will never be released to the public, then you should ensure +that their names will not clash with any future public module. You +can do this either by using the reserved Local::* category or by +using a category name that includes an underscore like Foo_Corp::*. +.Sp +To be portable each component of a module name should be limited to +11 characters. If it might be used on MS-DOS then try to ensure each is +unique in the first 8 characters. Nested modules make this easier. +.Sp +For additional guidance on the naming of modules, please consult: +.Sp +.Vb 1 +\& https://pause.perl.org/pause/query?ACTION=pause_namingmodules +.Ve +.Sp +or send mail to the <module\-authors@perl.org> mailing list. +.IP \(bu 4 +Have you got it right? +.Sp +How do you know that you've made the right decisions? Have you +picked an interface design that will cause problems later? Have +you picked the most appropriate name? Do you have any questions? +.Sp +The best way to know for sure, and pick up many helpful suggestions, +is to ask someone who knows. The <module\-authors@perl.org> mailing list +is useful for this purpose; it's also accessible via news interface as +perl.module\-authors at nntp.perl.org. +.Sp +All you need to do is post a short summary of the module, its +purpose and interfaces. A few lines on each of the main methods is +probably enough. (If you post the whole module it might be ignored +by busy people \- generally the very people you want to read it!) +.Sp +Don't worry about posting if you can't say when the module will be +ready \- just say so in the message. It might be worth inviting +others to help you, they may be able to complete it for you! +.IP \(bu 4 +README and other Additional Files. +.Sp +It's well known that software developers usually fully document the +software they write. If, however, the world is in urgent need of +your software and there is not enough time to write the full +documentation please at least provide a README file containing: +.RS 4 +.IP \(bu 10 +A description of the module/package/extension etc. +.IP \(bu 10 +A copyright notice \- see below. +.IP \(bu 10 +Prerequisites \- what else you may need to have. +.IP \(bu 10 +How to build it \- possible changes to Makefile.PL etc. +.IP \(bu 10 +How to install it. +.IP \(bu 10 +Recent changes in this release, especially incompatibilities +.IP \(bu 10 +Changes / enhancements you plan to make in the future. +.RE +.RS 4 +.Sp +If the README file seems to be getting too large you may wish to +split out some of the sections into separate files: INSTALL, +Copying, ToDo etc. +.IP \(bu 4 +Adding a Copyright Notice. +.Sp +How you choose to license your work is a personal decision. +The general mechanism is to assert your Copyright and then make +a declaration of how others may copy/use/modify your work. +.Sp +Perl, for example, is supplied with two types of licence: The GNU GPL +and The Artistic Licence (see the files README, Copying, and Artistic, +or perlgpl and perlartistic). Larry has good reasons for NOT +just using the GNU GPL. +.Sp +My personal recommendation, out of respect for Larry, Perl, and the +Perl community at large is to state something simply like: +.Sp +.Vb 3 +\& Copyright (c) 1995 Your Name. All rights reserved. +\& This program is free software; you can redistribute it and/or +\& modify it under the same terms as Perl itself. +.Ve +.Sp +This statement should at least appear in the README file. You may +also wish to include it in a Copying file and your source files. +Remember to include the other words in addition to the Copyright. +.IP \(bu 4 +Give the module a version/issue/release number. +.Sp +To be fully compatible with the Exporter and MakeMaker modules you +should store your module's version number in a non-my package +variable called \f(CW$VERSION\fR. This should be a positive floating point +number with at least two digits after the decimal (i.e., hundredths, +e.g, \f(CW\*(C`$VERSION = "0.01"\*(C'\fR). Don't use a "1.3.2" style version. +See Exporter for details. +.Sp +It may be handy to add a function or method to retrieve the number. +Use the number in announcements and archive file names when +releasing the module (ModuleName\-1.02.tar.Z). +See perldoc ExtUtils::MakeMaker.pm for details. +.IP \(bu 4 +How to release and distribute a module. +.Sp +If possible, register the module with CPAN. Follow the instructions +and links on: +.Sp +.Vb 1 +\& https://www.cpan.org/modules/04pause.html +.Ve +.Sp +and upload to: +.Sp +.Vb 1 +\& https://pause.perl.org/ +.Ve +.Sp +and notify <modules@perl.org>. This will allow anyone to install +your module using the \f(CW\*(C`cpan\*(C'\fR tool distributed with Perl. +.Sp +By using the WWW interface you can ask the Upload Server to mirror +your modules from your ftp or WWW site into your own directory on +CPAN! +.IP \(bu 4 +Take care when changing a released module. +.Sp +Always strive to remain compatible with previous released versions. +Otherwise try to add a mechanism to revert to the +old behavior if people rely on it. Document incompatible changes. +.RE +.RS 4 +.RE +.SS "Guidelines for Converting Perl 4 Library Scripts into Modules" +.IX Subsection "Guidelines for Converting Perl 4 Library Scripts into Modules" +.IP \(bu 4 +There is no requirement to convert anything. +.Sp +If it ain't broke, don't fix it! Perl 4 library scripts should +continue to work with no problems. You may need to make some minor +changes (like escaping non-array @'s in double quoted strings) but +there is no need to convert a .pl file into a Module for just that. +.IP \(bu 4 +Consider the implications. +.Sp +All Perl applications that make use of the script will need to +be changed (slightly) if the script is converted into a module. Is +it worth it unless you plan to make other changes at the same time? +.IP \(bu 4 +Make the most of the opportunity. +.Sp +If you are going to convert the script to a module you can use the +opportunity to redesign the interface. The guidelines for module +creation above include many of the issues you should consider. +.IP \(bu 4 +The pl2pm utility will get you started. +.Sp +This utility will read *.pl files (given as parameters) and write +corresponding *.pm files. The pl2pm utilities does the following: +.RS 4 +.IP \(bu 10 +Adds the standard Module prologue lines +.IP \(bu 10 +Converts package specifiers from ' to :: +.IP \(bu 10 +Converts die(...) to croak(...) +.IP \(bu 10 +Several other minor changes +.RE +.RS 4 +.Sp +Being a mechanical process pl2pm is not bullet proof. The converted +code will need careful checking, especially any package statements. +Don't delete the original .pl file till the new .pm one works! +.RE +.SS "Guidelines for Reusing Application Code" +.IX Subsection "Guidelines for Reusing Application Code" +.IP \(bu 4 +Complete applications rarely belong in the Perl Module Library. +.IP \(bu 4 +Many applications contain some Perl code that could be reused. +.Sp +Help save the world! Share your code in a form that makes it easy +to reuse. +.IP \(bu 4 +Break-out the reusable code into one or more separate module files. +.IP \(bu 4 +Take the opportunity to reconsider and redesign the interfaces. +.IP \(bu 4 +In some cases the 'application' can then be reduced to a small +.Sp +fragment of code built on top of the reusable modules. In these cases +the application could invoked as: +.Sp +.Vb 3 +\& % perl \-e \*(Aquse Module::Name; method(@ARGV)\*(Aq ... +\&or +\& % perl \-mModule::Name ... (in perl5.002 or higher) +.Ve +.SH NOTE +.IX Header "NOTE" +Perl does not enforce private and public parts of its modules as you may +have been used to in other languages like C++, Ada, or Modula\-17. Perl +doesn't have an infatuation with enforced privacy. It would prefer +that you stayed out of its living room because you weren't invited, not +because it has a shotgun. +.PP +The module and its user have a contract, part of which is common law, +and part of which is "written". Part of the common law contract is +that a module doesn't pollute any namespace it wasn't asked to. The +written contract for the module (A.K.A. documentation) may make other +provisions. But then you know when you \f(CW\*(C`use RedefineTheWorld\*(C'\fR that +you're redefining the world and willing to take the consequences. |