Documentation

Perl documentation is written in a language known as pod (plain old documentation). Pod is a set of simple tags that can be processed to produce documentation in the style of Unix manpages. There are also several utility programs available that process pod text and generate output in different formats. Pod tags can be intermixed with Perl commands or can be saved in a separate file, which usually has a pod extension. The pod tags and the utility programs that are included in the Perl distribution are described in "The Perl Language".

Installing the Documentation

On Unix, the standard Perl installation procedure generates manpages for the Perl documentation from their pod format, although your system administrator might also choose to install the documentation as HTML files. You can also use this procedure to generate manpages for CPAN modules when you install them. You might need to modify your MANPATH environment variable to include the path to the Perl manpages, but then you should be able to read the documentation with the man command. In addition, Perl comes with its own command, perldoc, which formats the pod documentation and displays it. perldoc is particularly useful for reading module documentation, which might not be installed as manpages; you can also use it for reading the core Perl documentation.

The ActiveState Win32 port comes with documentation in HTML format; you can find it in the /docs subdirectory of the distribution. Documentation specific to ActiveState's Perl for Win32 is installed in the /docs/Perl-Win32 subdirectory.

The Perl Manpages

Perl comes with lots of online documentation. To make life easier, the manpages are divided into separate sections so you don't have to wade through hundreds of pages of text to find what you are looking for. You can read them with either the man command or perldoc. Run man perl or perldoc perl to read the top-level page. This page in turn directs you to more specific pages. Or, if you know which page you want, you can go directly there by using:

% man perlvar
or:
% perldoc perlvar

The following table lists the sections in a logical order for reading through them:

Section Description
perl Overview (the top level)
perldelta Changes since previous version
perlfaq Frequently asked questions
perltoc Table of contents for Perl documentation
perldata Data structures
perlsyn Syntax
perlop Operators and precedence
perlre Regular expressions
perlrun Execution and options
perlfunc Built-in functions
perlvar Predefined variables
perlsub Subroutines
perlmod How modules work
perlmodlib How to write and use modules
perlmodinstall How to install modules from CPAN
perlform Formats
perllocale Locale support
perlref References
perldsc Data structures introduction
perllol Data structures: lists of lists
perltoot OO tutorial
perlobj Objects
perltie Objects hidden behind simple variables
perlbot OO tricks and examples
perlipc Interprocess communication
perldebug Debugging
perldiag Diagnostic messages
perlsec Security
perltrap Traps for the unwary
perlport Portability guide
perlstyle Style guide
perlpod Plain old documentation
perltutorial Tutorial information
perlembed Embedding Perl in your C or C++ application
perlapio Internal I/O abstraction interface
perlxs XS application developing interface
perlxstut XS tutorial
perlguts Internal functions for those doing extensions
perlcall Calling conventions from C
perlhist History records
perlreftut Perl references short introduction
perlrequick Perl regular expressions quick start
perllexwarn Perl warnings and their control
perldebtut Perl debugging tutorial
perlopentut Perl open( ) tutorial
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltootc Perl OO tutorial, part 2
perlfork Perl fork( ) information
perlnumber Perl number semantics
perlthrtut Perl threads tutorial
perlunicode Perl unicode support
perlebcdic Considerations for running Perl on EBCDIC platforms
perlnewmod Perl modules: preparing a new module for distribution
perlfaq1 General questions about Perl
perlfaq2 Obtaining and learning about Perl
perlfaq3 Developing tools
perlfaq4 Data manipulation
perlfaq5 Files and formats
perlfaq6 Regexes
perlfaq7 Perl language issues
perlfaq8 System interaction
perlfaq9 Networking
perlcompile Perl compiler suite intro
perldebguts Perl debugging guts and tips
perlclib Internal replacements for standard C library functions
perlutil Utilities packaged with the Perl distribution
perlfilter Perl source filters
perldbmfilter Perl DBM filters
perlapi Perl API listing (autogenerated)
perlintern Perl internal functions (autogenerated)
perltodo Perl things to do
perlhack Perl hackers guide
perl5005delta Perl changes in Version 5.005
perl5004delta Perl changes in Version 5.004
perlaix Perl notes for AIX
perlamiga Perl notes for Amiga
perlbs2000 Perl notes for POSIX-BC BS2000
perlcygwin Perl notes for Cygwin
perldos Perl notes for DOS
perlepoc Perl notes for EPOC
perlhpux Perl notes for HP-UX
perlmachten Perl notes for Power MachTen
perlmacos Perl notes for Mac OS (Classic)
perlmpeix Perl notes for MPE/iX
perlos2 Perl notes for OS/2
perlos390 Perl notes for OS/390
perlsolaris Perl notes for Solaris
perlvmesa Perl notes for VM/ESA
perlvms Perl notes for VMS
perlvos Perl notes for Stratus VOS
perlwin32 Perl notes for Windows
perl561delta.pod What's new in Perl v5.6.x (added in 5.8)
perl56delta.pod What's new in Perl v5.6.0 (added in 5.8)
perl570delta.pod What's new in Perl v5.7.0 (added in 5.8)
perl571delta.pod What's new in Perl v5.7.1 (added in 5.8)
perl572delta.pod What's new in Perl v5.7.2 (added in 5.8)
perlapollo.pod Perl on Apollo DomainOS (added in 5.8)
perlbeos.pod Perl on BeOS (added in 5.8)
perlce.pod Perl on Windows CE (added in 5.8)
perldgux.pod Perl on DG/UX (added in 5.8)
perlhurd.pod Perl on GNU Hurd (added in 5.8)
perlintro.pod A brief introduction and overview of Perl (added in 5.8)
perliol.pod C API for Perl's implementation of I/O in Layers (added in 5.8)
perlmint.pod Perl on Atari MiNT (added in 5.8)
perlmodstyle.pod Perl module style guide (added in 5.8)
perlnetware.pod Perl on Netware 5.x (added in 5.8)
perlothrtut.pod Old tutorial on threads in Perl (added in 5.8)
perlpacktut.pod Tutorial on pack and unpack
perlplan9.pod Perl on Plan-9 (added in 5.8)
perlpodspec.pod Plain Old Documentation; format specification and notes (added in 5.8)
perlqnx.pod Perl on QNX (added in 5.8)
perltooc.pod Tom's OO Tutorial for Class Data in Perl (added in 5.8)
perltru64.pod Perl Version 5 on Tru64 systems (added in 5.8)
perluniintro.pod Perl Unicode introduction (added in 5.8)
perluts.pod Perl under UTS (added in 5.8)