perldoc.pod revision 1.1.1.1
1
2=head1 NAME
3
4perldoc - Look up Perl documentation in Pod format.
5
6=head1 SYNOPSIS
7
8    perldoc [-h] [-D] [-t] [-u] [-m] [-l] [-F]
9        [-i] [-V] [-T] [-r]
10        [-d destination_file]
11        [-o formatname]
12        [-M FormatterClassName]
13        [-w formatteroption:value]
14        [-n nroff-replacement]
15        [-X]
16        [-L language_code]
17        PageName|ModuleName|ProgramName|URL
18
19Examples:
20
21    perldoc -f BuiltinFunction
22
23    perldoc -L it -f BuiltinFunction
24
25    perldoc -q FAQ Keyword
26
27    perldoc -L fr -q FAQ Keyword
28
29    perldoc -v PerlVariable
30
31    perldoc -a PerlAPI
32
33See below for more description of the switches.
34
35=head1 DESCRIPTION
36
37B<perldoc> looks up a piece of documentation in .pod format that is
38embedded in the perl installation tree or in a perl script, and displays
39it via C<groff -man | $PAGER>. (In addition, if running under HP-UX,
40C<col -x> will be used.) This is primarily used for the documentation for
41the perl library modules.
42
43Your system may also have man pages installed for those modules, in
44which case you can probably just use the man(1) command.
45
46If you are looking for a table of contents to the Perl library modules
47documentation, see the L<perltoc> page.
48
49=head1 OPTIONS
50
51=over 5
52
53=item B<-h>
54
55Prints out a brief B<h>elp message.
56
57=item B<-D>
58
59B<D>escribes search for the item in B<d>etail.
60
61=item B<-t>
62
63Display docs using plain B<t>ext converter, instead of nroff. This may be faster,
64but it probably won't look as nice.
65
66=item B<-u>
67
68Skip the real Pod formatting, and just show the raw Pod source (B<U>nformatted)
69
70=item B<-m> I<module>
71
72Display the entire module: both code and unformatted pod documentation.
73This may be useful if the docs don't explain a function in the detail
74you need, and you'd like to inspect the code directly; perldoc will find
75the file for you and simply hand it off for display.
76
77=item B<-l>
78
79Display onB<l>y the file name of the module found.
80
81=item B<-F>
82
83Consider arguments as file names; no search in directories will be performed.
84
85=item B<-f> I<perlfunc>
86
87The B<-f> option followed by the name of a perl built-in function will
88extract the documentation of this function from L<perlfunc>.
89
90Example:
91
92      perldoc -f sprintf
93
94
95=item B<-q> I<perlfaq-search-regexp>
96
97The B<-q> option takes a regular expression as an argument.  It will search
98the B<q>uestion headings in perlfaq[1-9] and print the entries matching
99the regular expression.
100
101Example:
102
103     perldoc -q shuffle
104
105=item B<-a> I<perlapifunc>
106
107The B<-a> option followed by the name of a perl api function will
108extract the documentation of this function from L<perlapi>.
109
110Example:
111
112     perldoc -a newHV
113
114=item B<-v> I<perlvar>
115
116The B<-v> option followed by the name of a Perl predefined variable will
117extract the documentation of this variable from L<perlvar>.
118
119Examples:
120
121     perldoc -v '$"'
122     perldoc -v @+
123     perldoc -v DATA
124
125
126=item B<-T>
127
128This specifies that the output is not to be sent to a pager, but is to
129be sent directly to STDOUT.
130
131=item B<-d> I<destination-filename>
132
133This specifies that the output is to be sent neither to a pager nor
134to STDOUT, but is to be saved to the specified filename.  Example:
135C<perldoc -oLaTeX -dtextwrapdocs.tex Text::Wrap>
136
137=item B<-o> I<output-formatname>
138
139This specifies that you want Perldoc to try using a Pod-formatting
140class for the output format that you specify.  For example:
141C<-oman>.  This is actually just a wrapper around the C<-M> switch;
142using C<-oI<formatname>> just looks for a loadable class by adding
143that format name (with different capitalizations) to the end of
144different classname prefixes.
145
146For example, C<-oLaTeX> currently tries all of the following classes:
147Pod::Perldoc::ToLaTeX Pod::Perldoc::Tolatex Pod::Perldoc::ToLatex
148Pod::Perldoc::ToLATEX Pod::Simple::LaTeX Pod::Simple::latex
149Pod::Simple::Latex Pod::Simple::LATEX Pod::LaTeX Pod::latex Pod::Latex
150Pod::LATEX.
151
152=item B<-M> I<module-name>
153
154This specifies the module that you want to try using for formatting the
155pod.  The class must at least provide a C<parse_from_file> method.
156For example: C<perldoc -MPod::Perldoc::ToChecker>.
157
158You can specify several classes to try by joining them with commas
159or semicolons, as in C<-MTk::SuperPod;Tk::Pod>.
160
161=item B<-w> I<option:value> or B<-w> I<option>
162
163This specifies an option to call the formatter B<w>ith.  For example,
164C<-w textsize:15> will call
165C<< $formatter->textsize(15) >> on the formatter object before it is
166used to format the object.  For this to be valid, the formatter class
167must provide such a method, and the value you pass should be valid.
168(So if C<textsize> expects an integer, and you do C<-w textsize:big>,
169expect trouble.)
170
171You can use C<-w optionname> (without a value) as shorthand for
172C<-w optionname:I<TRUE>>.  This is presumably useful in cases of on/off
173features like: C<-w page_numbering>.
174
175You can use an "=" instead of the ":", as in: C<-w textsize=15>.  This
176might be more (or less) convenient, depending on what shell you use.
177
178=item B<-X>
179
180Use an index if it is present. The B<-X> option looks for an entry
181whose basename matches the name given on the command line in the file
182C<$Config{archlib}/pod.idx>. The F<pod.idx> file should contain fully
183qualified filenames, one per line.
184
185=item B<-L> I<language_code>
186
187This allows one to specify the I<language code> for the desired language
188translation. If the C<POD2::E<lt>language_codeE<gt>> package isn't
189installed in your system, the switch is ignored.
190All available translation packages are to be found under the C<POD2::>
191namespace. See L<POD2::IT> (or L<POD2::FR>) to see how to create new
192localized C<POD2::*> documentation packages and integrate them into
193L<Pod::Perldoc>.
194
195=item B<PageName|ModuleName|ProgramName|URL>
196
197The item you want to look up.  Nested modules (such as C<File::Basename>)
198are specified either as C<File::Basename> or C<< File/Basename >>.  You may also
199give a descriptive name of a page, such as C<perlfunc>.  For URLs, HTTP and
200HTTPS are the only kind currently supported.
201
202For simple names like 'foo', when the normal search fails to find
203a matching page, a search with the "perl" prefix is tried as well.
204So "perldoc intro" is enough to find/render "perlintro.pod".
205
206=item B<-n> I<some-formatter>
207
208Specify replacement for groff
209
210=item B<-r>
211
212Recursive search.
213
214=item B<-i>
215
216Ignore case.
217
218=item B<-V>
219
220Displays the version of perldoc you're running.
221
222=back
223
224=head1 SECURITY
225
226Because B<perldoc> does not run properly tainted, and is known to
227have security issues, when run as the superuser it will attempt to
228drop privileges by setting the effective and real IDs to nobody's
229or nouser's account, or -2 if unavailable.  If it cannot relinquish
230its privileges, it will not run.
231
232=head1 ENVIRONMENT
233
234Any switches in the C<PERLDOC> environment variable will be used before the
235command line arguments.
236
237Useful values for C<PERLDOC> include C<-oterm>, C<-otext>, C<-ortf>,
238C<-oxml>, and so on, depending on what modules you have on hand; or
239the formatter class may be specified exactly with C<-MPod::Perldoc::ToTerm>
240or the like.
241
242C<perldoc> also searches directories
243specified by the C<PERL5LIB> (or C<PERLLIB> if C<PERL5LIB> is not
244defined) and C<PATH> environment variables.
245(The latter is so that embedded pods for executables, such as
246C<perldoc> itself, are available.)
247
248In directories where either C<Makefile.PL> or C<Build.PL> exist, C<perldoc>
249will add C<.> and C<lib> first to its search path, and as long as you're not
250the superuser will add C<blib> too.  This is really helpful if you're working
251inside of a build directory and want to read through the docs even if you
252have a version of a module previously installed.
253
254C<perldoc> will use, in order of preference, the pager defined in
255C<PERLDOC_PAGER>, C<MANPAGER>, or C<PAGER> before trying to find a pager
256on its own. (C<MANPAGER> is not used if C<perldoc> was told to display
257plain text or unformatted pod.)
258
259When using perldoc in it's C<-m> mode (display module source code),
260C<perldoc> will attempt to use the pager set in C<PERLDOC_SRC_PAGER>.
261A useful setting for this command is your favorite editor as in
262C</usr/bin/nano>. (Don't judge me.)
263
264One useful value for C<PERLDOC_PAGER> is C<less -+C -E>.
265
266Having PERLDOCDEBUG set to a positive integer will make perldoc emit
267even more descriptive output than the C<-D> switch does; the higher the
268number, the more it emits.
269
270
271=head1 CHANGES
272
273Up to 3.14_05, the switch B<-v> was used to produce verbose
274messages of B<perldoc> operation, which is now enabled by B<-D>.
275
276=head1 SEE ALSO
277
278L<perlpod>, L<Pod::Perldoc>
279
280=head1 AUTHOR
281
282Current maintainer: Mark Allen C<< <mallen@cpan.org> >>
283
284Past contributors are:
285brian d foy C<< <bdfoy@cpan.org> >> 
286Adriano R. Ferreira C<< <ferreira@cpan.org> >>,
287Sean M. Burke C<< <sburke@cpan.org> >>,
288Kenneth Albanowski C<< <kjahds@kjahds.com> >>,
289Andy Dougherty  C<< <doughera@lafcol.lafayette.edu> >>,
290and many others.
291
292=cut
293