xref: /openbsd-src/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
1=pod
2
3=encoding UTF-8
4
5=head1 NAME
6
7perlfaq2 - Obtaining and Learning about Perl
8
9=head1 VERSION
10
11version 5.20240218
12
13=head1 DESCRIPTION
14
15This section of the FAQ answers questions about where to find
16source and documentation for Perl, support, and
17related matters.
18
19=head2 What machines support Perl? Where do I get it?
20
21The standard release of Perl (the one maintained by the Perl
22development team) is distributed only in source code form. You
23can find the latest releases at L<http://www.cpan.org/src/>.
24
25Perl builds and runs on a bewildering number of platforms. Virtually
26all known and current Unix derivatives are supported (perl's native
27platform), as are other systems like VMS, DOS, OS/2, Windows,
28QNX, BeOS, OS X, MPE/iX and the Amiga.
29
30Binary distributions for some proprietary platforms can be found
31L<http://www.cpan.org/ports/> directory. Because these are not part of
32the standard distribution, they may and in fact do differ from the
33base perl port in a variety of ways. You'll have to check their
34respective release notes to see just what the differences are. These
35differences can be either positive (e.g. extensions for the features
36of the particular platform that are not supported in the source
37release of perl) or negative (e.g. might be based upon a less current
38source release of perl).
39
40=head2 How can I get a binary version of Perl?
41
42See L<CPAN Ports|http://www.cpan.org/ports/>
43
44=head2 I don't have a C compiler. How can I build my own Perl interpreter?
45
46For Windows, use a binary version of Perl,
47L<Strawberry Perl|http://strawberryperl.com/> and
48L<ActivePerl|http://www.activestate.com/activeperl> come with a
49bundled C compiler.
50
51Otherwise if you really do want to build Perl, you need to get a
52binary version of C<gcc> for your system first. Use a search
53engine to find out how to do this for your operating system.
54
55=head2 I copied the Perl binary from one machine to another, but scripts don't work.
56
57That's probably because you forgot libraries, or library paths differ.
58You really should build the whole distribution on the machine it will
59eventually live on, and then type C<make install>. Most other
60approaches are doomed to failure.
61
62One simple way to check that things are in the right place is to print out
63the hard-coded C<@INC> that perl looks through for libraries:
64
65    % perl -le 'print for @INC'
66
67If this command lists any paths that don't exist on your system, then you
68may need to move the appropriate libraries to these locations, or create
69symbolic links, aliases, or shortcuts appropriately. C<@INC> is also printed as
70part of the output of
71
72    % perl -V
73
74You might also want to check out
75L<perlfaq8/"How do I keep my own module/library directory?">.
76
77=head2 I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work?
78
79Read the F<INSTALL> file, which is part of the source distribution.
80It describes in detail how to cope with most idiosyncrasies that the
81C<Configure> script can't work around for any given system or
82architecture.
83
84=head2 What modules and extensions are available for Perl? What is CPAN?
85
86CPAN stands for Comprehensive Perl Archive Network, a multi-gigabyte
87archive replicated on hundreds of machines all over the world. CPAN
88contains tens of thousands of modules and extensions, source code
89and documentation, designed for I<everything> from commercial
90database interfaces to keyboard/screen control and running large web sites.
91
92You can search CPAN on L<http://metacpan.org>.
93
94The master web site for CPAN is L<http://www.cpan.org/>,
95L<http://www.cpan.org/SITES.html> lists all mirrors.
96
97See the CPAN FAQ at L<http://www.cpan.org/misc/cpan-faq.html> for answers
98to the most frequently asked questions about CPAN.
99
100The L<Task::Kensho> module has a list of recommended modules which
101you should review as a good starting point.
102
103=head2 Where can I get information on Perl?
104
105=over 4
106
107=item * L<http://www.perl.org/>
108
109=item * L<http://perldoc.perl.org/>
110
111=item * L<http://learn.perl.org/>
112
113=back
114
115The complete Perl documentation is available with the Perl distribution.
116If you have Perl installed locally, you probably have the documentation
117installed as well: type C<perldoc perl> in a terminal or
118L<view online|http://perldoc.perl.org/perl.html>.
119
120(Some operating system distributions may ship the documentation in a different
121package; for instance, on Debian, you need to install the C<perl-doc> package.)
122
123Many good books have been written about Perl--see the section later in
124L<perlfaq2> for more details.
125
126=head2 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
127
128L<Perl.com|http://www.perl.com/> used to be part of the O'Reilly
129Network, a subsidiary of O'Reilly Media. Although it retains most of
130the original content from its O'Reilly Network, it is now hosted by
131L<The Perl Foundation|http://www.perlfoundation.org/>.
132
133The Perl Foundation is an advocacy organization for the Perl language
134which maintains the web site L<http://www.perl.org/> as a general
135advocacy site for the Perl language. It uses the domain to provide
136general support services to the Perl community, including the hosting
137of mailing lists, web sites, and other services. There are also many
138other sub-domains for special topics like learning Perl and jobs in Perl,
139such as:
140
141=over 4
142
143=item * L<http://www.perl.org/>
144
145=item * L<http://learn.perl.org/>
146
147=item * L<http://jobs.perl.org/>
148
149=item * L<http://lists.perl.org/>
150
151=back
152
153L<Perl Mongers|http://www.pm.org/> uses the pm.org domain for services
154related to local Perl user groups, including the hosting of mailing lists
155and web sites. See the L<Perl Mongers web site|http://www.pm.org/> for more
156information about joining, starting, or requesting services for a
157Perl user group.
158
159CPAN, or the Comprehensive Perl Archive Network L<http://www.cpan.org/>,
160is a replicated, worldwide repository of Perl software.
161See L<What is CPAN?|/"What modules and extensions are available for Perl? What is CPAN?">.
162
163=head2 Where can I post questions?
164
165There are many Perl L<mailing lists|lists.perl.org> for various
166topics, specifically the L<beginners list|http://lists.perl.org/list/beginners.html>
167may be of use.
168
169Other places to ask questions are on the
170L<PerlMonks site|http://www.perlmonks.org/> or
171L<stackoverflow|http://stackoverflow.com/questions/tagged/perl>.
172
173=head2 Perl Books
174
175There are many good L<books on Perl|http://www.perl.org/books/library.html>.
176
177=head2 Which magazines have Perl content?
178
179There are no current magazines that focus on Perl, although you sometimes
180will find Perl content in more general interest programming titles.
181
182In the distant past, there have been a few Perl magazines. The first was I<The Perl
183Journal>, published by Jon Orwant. After that, there was I<The Perl Review>,
184published by brian d foy, and  I<$foo Magazin>, published by Renée Bäcker
185(L<http://www.foo-magazin.de>).
186
187The closest you might find today is Perl Weekly, (L<https://perlweekly.com>),
188an online newsletter with a magazine-like format.
189
190=head2 Which Perl blogs should I read?
191
192L<Perl News|http://perlnews.org/> covers some of the major events in the Perl
193world, L<Perl Weekly|http://perlweekly.com/> is a weekly e-mail
194(and RSS feed) of hand-picked Perl articles.
195
196L<http://blogs.perl.org/> hosts many Perl blogs, there are also
197several blog aggregators: L<Perlsphere|http://perlsphere.net/> and
198L<IronMan|http://ironman.enlightenedperl.org/> are two of them.
199
200=head2 What mailing lists are there for Perl?
201
202A comprehensive list of Perl-related mailing lists can be found at
203L<http://lists.perl.org/>
204
205=head2 Where can I buy a commercial version of Perl?
206
207Perl already I<is> commercial software: it has a license
208that you can grab and carefully read to your manager. It is distributed
209in releases and comes in well-defined packages. There is a very large
210and supportive user community and an extensive literature.
211
212If you still need commercial support
213L<ActiveState|http://www.activestate.com/activeperl> offers
214this.
215
216=head2 Where do I send bug reports?
217
218(contributed by brian d foy)
219
220First, ensure that you've found an actual bug. Second, ensure you've
221found an actual bug.
222
223If you've found a bug with the perl interpreter or one of the modules
224in the standard library (those that come with Perl), submit a
225bug report to the GitHub issue tracker at
226L<https://github.com/Perl/perl5/issues>.
227
228To determine if a module came with your version of Perl, you can
229install and use L<Module::CoreList>. It knows the modules (with their
230versions) included with each release of Perl:
231
232	$ corelist File::Copy
233	Data for 2023-07-02
234	File::Copy was first released with perl 5.002
235
236	$ corelist Business::ISBN
237	Data for 2023-07-02
238	Business::ISBN was not in CORE (or so I think)
239
240If the module does not come with Perl, report its issues
241using the tool that the particular module author decided to use, such as
242a GitHub or Google Code. The quickest way may be to check the MetaCPAN
243page for the module (for example,
244L<https://metacpan.org/pod/Business::ISBN>), which shows the denoted
245bugtracker in the left sidebar as the "Issues" link.
246
247Also check the module's documentation, F<README>, the build files
248(F<Makefile.PL> or C<Build.PL>), or F<META.{json,yml}> files. Although
249many module authors follow the same pattern, some have their own way.
250Use the directions you find.
251
252Sometimes the module author does not declare a bugtracker. For a long
253time, everyone assumed that the CPAN Request Tracker
254(L<https://rt.cpan.org>) was the bugtracker since every distribution had
255an RT queue generated automatically. In somes cases, the author might
256use CPAN RT. They also might have not declared a different
257bugtracker but don't use CPAN RT.
258
259Submit bugs to RT either through its web interface,
260L<https://rt.cpan.org>, or by email. Send email to I<<
261bug-E<lt>distribution-nameE<gt>@rt.cpan.org >>. For example, if you
262wanted to report a bug in the example module L<Foo::Bar>, you could send
263a message to I<bug-Foo-Bar@rt.cpan.org>.
264
265=head1 AUTHOR AND COPYRIGHT
266
267Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington, and
268other authors as noted. All rights reserved.
269
270This documentation is free; you can redistribute it and/or modify it
271under the same terms as Perl itself.
272
273Irrespective of its distribution, all code examples here are in the public
274domain. You are permitted and encouraged to use this code and any
275derivatives thereof in your own programs for fun or for profit as you
276see fit. A simple comment in the code giving credit to the FAQ would
277be courteous but is not required.
278