This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re-mention $foo Magazin in perlfaq2
[perl5.git] / pod / perlfaq2.pod
CommitLineData
68dc0745 1=head1 NAME
2
109f0441 3perlfaq2 - Obtaining and Learning about Perl
68dc0745 4
5=head1 DESCRIPTION
6
7This section of the FAQ answers questions about where to find
92c2ed05 8source and documentation for Perl, support, and
68dc0745 9related matters.
10
ab098d01 11=head2 What machines support perl? Where do I get it?
68dc0745 12
b68463f7 13The standard release of perl (the one maintained by the perl
ab098d01 14development team) is distributed only in source code form. You
109f0441 15can find the latest releases at http://www.cpan.org/src/README.html .
5e3006a4 16
ab098d01 17Perl builds and runs on a bewildering number of platforms. Virtually
b68463f7 18all known and current Unix derivatives are supported (perl's native
87275199 19platform), as are other systems like VMS, DOS, OS/2, Windows,
c355f4f4 20QNX, BeOS, OS X, MPE/iX and the Amiga.
5e3006a4 21
109f0441
S
22Binary distributions for some proprietary platforms can be found
23http://www.cpan.org/ports/ directory. Because these are not part of
24the standard distribution, they may and in fact do differ from the
25base perl port in a variety of ways. You'll have to check their
ab098d01 26respective release notes to see just what the differences are. These
109f0441
S
27differences can be either positive (e.g. extensions for the features
28of the particular platform that are not supported in the source
29release of perl) or negative (e.g. might be based upon a less current
30source release of perl).
92c2ed05 31
b68463f7 32=head2 How can I get a binary version of perl?
68dc0745 33
109f0441
S
34(contributed by brian d foy)
35
36ActiveState: Windows, Linux, Mac OS X, Solaris, AIX and HP-UX
322be77c
RGS
37
38 http://www.activestate.com/
39
109f0441 40Sunfreeware.com: Solaris 2.5 to Solaris 10 (SPARC and x86)
322be77c
RGS
41
42 http://www.sunfreeware.com/
43
109f0441 44Strawberry Perl: Windows, Perl 5.8.8 and 5.10.0
65acb1b1 45
109f0441 46 http://www.strawberryperl.com
d12d61cf 47
109f0441 48IndigoPerl: Windows
65acb1b1 49
109f0441 50 http://indigostar.com/
3fe9a6f1 51
b68463f7 52=head2 I don't have a C compiler. How can I build my own Perl interpreter?
3fe9a6f1 53
54Since you don't have a C compiler, you're doomed and your vendor
ab098d01 55should be sacrificed to the Sun gods. But that doesn't help you.
3fe9a6f1 56
3bc3c5be 57What you need to do is get a binary version of C<gcc> for your system
ab098d01 58first. Consult the Usenet FAQs for your operating system for
3fe9a6f1 59information on where to get such a binary version.
60
109f0441 61You might look around the net for a pre-built binary of Perl (or a
ee891a00
RGS
62C compiler!) that meets your needs, though:
63
c195e131 64For Windows, Vanilla Perl ( http://vanillaperl.com/ ) and Strawberry Perl
109f0441 65( http://strawberryperl.com/ ) come with a
ee891a00
RGS
66bundled C compiler. ActivePerl is a pre-compiled version of Perl
67ready-to-use.
68
109f0441 69For Sun systems, SunFreeware.com provides binaries of most popular
ee891a00
RGS
70applications, including compilers and Perl.
71
b68463f7 72=head2 I copied the perl binary from one machine to another, but scripts don't work.
68dc0745 73
74That's probably because you forgot libraries, or library paths differ.
75You really should build the whole distribution on the machine it will
ab098d01 76eventually live on, and then type C<make install>. Most other
68dc0745 77approaches are doomed to failure.
78
79One simple way to check that things are in the right place is to print out
3bc3c5be 80the hard-coded C<@INC> that perl looks through for libraries:
68dc0745 81
f0d19b68 82 % perl -le 'print for @INC'
68dc0745 83
a6dd486b 84If this command lists any paths that don't exist on your system, then you
68dc0745 85may need to move the appropriate libraries to these locations, or create
ab098d01 86symbolic links, aliases, or shortcuts appropriately. C<@INC> is also printed as
65acb1b1
TC
87part of the output of
88
89 % perl -V
68dc0745 90
c355f4f4 91You might also want to check out
13a2d996 92L<perlfaq8/"How do I keep my own module/library directory?">.
3fe9a6f1 93
ab098d01 94=head2 I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work?
68dc0745 95
96Read the F<INSTALL> file, which is part of the source distribution.
65acb1b1 97It describes in detail how to cope with most idiosyncrasies that the
3bc3c5be 98C<Configure> script can't work around for any given system or
68dc0745 99architecture.
100
ab098d01 101=head2 What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean?
68dc0745 102
e573f903
RGS
103CPAN stands for Comprehensive Perl Archive Network, a multi-gigabyte
104archive replicated on hundreds of machines all over the world. CPAN
105contains source code, non-native ports, documentation, scripts, and
106many third-party modules and extensions, designed for everything from
68dc0745 107commercial database interfaces to keyboard/screen control to web
e573f903 108walking and CGI scripts. The master web site for CPAN is
c355f4f4 109http://www.cpan.org/ and there is the CPAN Multiplexer at
e573f903 110http://www.cpan.org/CPAN.html which will choose a mirror near you via
ab098d01 111DNS. See http://www.perl.com/CPAN (without a slash at the end) for
e573f903
RGS
112how this process works. Also, http://mirror.cpan.org/ has a nice
113interface to the http://www.cpan.org/MIRRORED.BY mirror directory.
c355f4f4 114
e573f903
RGS
115See the CPAN FAQ at http://www.cpan.org/misc/cpan-faq.html for answers
116to the most frequently asked questions about CPAN including how to
117become a mirror.
68dc0745 118
80ffd05b 119F<CPAN/path/...> is a naming convention for files available on CPAN
ab098d01 120sites. CPAN indicates the base directory of a CPAN mirror, and the
e573f903 121rest of the path is the path from that directory to the file. For
68dc0745 122instance, if you're using ftp://ftp.funet.fi/pub/languages/perl/CPAN
80ffd05b 123as your CPAN site, the file F<CPAN/misc/japh> is downloadable as
68dc0745 124ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh .
125
e573f903
RGS
126Considering that, as of 2006, there are over ten thousand existing
127modules in the archive, one probably exists to do nearly anything you
3bc3c5be 128can think of. Current categories under C<CPAN/modules/by-category/>
e573f903
RGS
129include Perl core modules; development support; operating system
130interfaces; networking, devices, and interprocess communication; data
131type utilities; database interfaces; user interfaces; interfaces to
132other languages; filenames, file systems, and file locking;
133internationalization and locale; world wide web support; server and
134daemon utilities; archiving and compression; image manipulation; mail
135and news; control flow utilities; filehandle and I/O; Microsoft
136Windows modules; and miscellaneous modules.
68dc0745 137
c355f4f4 138See http://www.cpan.org/modules/00modlist.long.html or
e573f903
RGS
139http://search.cpan.org/ for a more complete list of modules by
140category.
c355f4f4 141
e573f903 142CPAN is a free service and is not affiliated with O'Reilly Media.
c355f4f4 143
68dc0745 144=head2 Is there an ISO or ANSI certified version of Perl?
145
ab098d01 146Certainly not. Larry expects that he'll be certified before Perl is.
68dc0745 147
148=head2 Where can I get information on Perl?
149
87275199
GS
150The complete Perl documentation is available with the Perl distribution.
151If you have Perl installed locally, you probably have the documentation
5a964f20
TC
152installed as well: type C<man perl> if you're on a system resembling Unix.
153This will lead you to other important man pages, including how to set your
ab098d01 154C<$MANPATH>. If you're not on a Unix system, access to the documentation
155will be different; for example, documentation might only be in HTML format. All
b68463f7 156proper perl installations have fully-accessible documentation.
68dc0745 157
158You might also try C<perldoc perl> in case your system doesn't
ab098d01 159have a proper C<man> command, or it's been misinstalled. If that doesn't
3bc3c5be 160work, try looking in C</usr/local/lib/perl5/pod> for documentation.
68dc0745 161
9e72e4c6
RGS
162If all else fails, consult http://perldoc.perl.org/ which has the
163complete documentation in HTML and PDF format.
68dc0745 164
ac9dac7f
RGS
165Many good books have been written about Perl--see the section later in
166L<perlfaq2> for more details.
68dc0745 167
761f3ec6 168Tutorial documents included in current or upcoming Perl releases
a6dd486b
JB
169include L<perltoot> for objects or L<perlboot> for a beginner's
170approach to objects, L<perlopentut> for file opening semantics,
171L<perlreftut> for managing references, L<perlretut> for regular
172expressions, L<perlthrtut> for threads, L<perldebtut> for debugging,
ab098d01 173and L<perlxstut> for linking C and Perl together. There may be more
174by the time you read this. These URLs might also be useful:
65acb1b1 175
9e72e4c6 176 http://perldoc.perl.org/
c355f4f4 177 http://bookmarks.cpan.org/search.cgi?cat=Training%2FTutorials
65acb1b1 178
ab098d01 179=head2 What are the Perl newsgroups on Usenet? Where do I post questions?
68dc0745 180
04d666b1 181Several groups devoted to the Perl language are on Usenet:
68dc0745 182
109f0441
S
183 comp.lang.perl.announce Moderated announcement group
184 comp.lang.perl.misc High traffic general Perl discussion
185 comp.lang.perl.moderated Moderated discussion group
186 comp.lang.perl.modules Use and development of Perl modules
187 comp.lang.perl.tk Using Tk (and X) from Perl
68dc0745 188
04d666b1 189Some years ago, comp.lang.perl was divided into those groups, and
ab098d01 190comp.lang.perl itself officially removed. While that group may still
04d666b1
RGS
191be found on some news servers, it is unwise to use it, because
192postings there will not appear on news servers which honour the
ab098d01 193official list of group names. Use comp.lang.perl.misc for topics
04d666b1 194which do not have a more-appropriate specific group.
83a70550 195
04d666b1
RGS
196There is also a Usenet gateway to Perl mailing lists sponsored by
197perl.org at nntp://nntp.perl.org , a web interface to the same lists
198at http://nntp.perl.org/group/ and these lists are also available
199under the C<perl.*> hierarchy at http://groups.google.com . Other
200groups are listed at http://lists.perl.org/ ( also known as
201http://lists.cpan.org/ ).
202
6670e5e7 203A nice place to ask questions is the PerlMonks site,
04d666b1
RGS
204http://www.perlmonks.org/ , or the Perl Beginners mailing list
205http://lists.perl.org/showlist.cgi?name=beginners .
83a70550
JH
206
207Note that none of the above are supposed to write your code for you:
208asking questions about particular problems or general advice is fine,
209but asking someone to write your code for free is not very cool.
68dc0745 210
211=head2 Where should I post source code?
212
65acb1b1 213You should post source code to whichever group is most appropriate, but
ab098d01 214feel free to cross-post to comp.lang.perl.misc. If you want to cross-post
65acb1b1
TC
215to alt.sources, please make sure it follows their posting standards,
216including setting the Followup-To header line to NOT include alt.sources;
f224927c 217see their FAQ ( http://www.faqs.org/faqs/alt-sources-intro/ ) for details.
68dc0745 218
c355f4f4 219If you're just looking for software, first use Google
23bec515 220( http://www.google.com ), Google's Usenet search interface
ab098d01 221( http://groups.google.com ), and CPAN Search ( http://search.cpan.org ).
0bc0ad85 222This is faster and more productive than just posting a request.
5a964f20 223
68dc0745 224=head2 Perl Books
225
ab098d01 226There are many good books on Perl. See the L<perlbook> documentation or
227( http://books.perl.org ).
5a964f20 228
fcd1fd07 229=head2 Which magazines have Perl content?
5a964f20 230
d409f588 231There's also I<$foo Magazin>, a German magazine dedicated to Perl, at
232( http://www.foo-magazin.de ). The I<Perl-Zeitung> is another
233German-speaking magazine for Perl beginners (see
234http://perl-zeitung.at.tf ).
3bc3c5be 235
4b496e6e 236Magazines that frequently carry quality articles on Perl include
237I<Unix Review> ( http://www.unixreview.com/ ), I<Linux Magazine> (
ac9dac7f 238http://www.linuxmagazine.com/ ), and Usenix's newsletter/magazine to
3bc3c5be 239its members, I<login:> ( http://www.usenix.org/ ).
41eb6b36 240
ae6d88cb 241The Perl columns of Randal L. Schwartz are available on the web at
41eb6b36
JH
242http://www.stonehenge.com/merlyn/WebTechniques/ ,
243http://www.stonehenge.com/merlyn/UnixReview/ , and
244http://www.stonehenge.com/merlyn/LinuxMag/ .
68dc0745 245
ac9dac7f
RGS
246The first (and for a long time, only) periodical devoted to All Things
247Perl, I<The Perl Journal> contains tutorials, demonstrations, case
ab098d01 248studies, announcements, contests, and much more. I<TPJ> has columns
ac9dac7f
RGS
249on web development, databases, Win32 Perl, graphical programming,
250regular expressions, and networking, and sponsors the Obfuscated Perl
ab098d01 251Contest and the Perl Poetry Contests. Beginning in November 2002, I<TPJ>
ac9dac7f 252moved to a reader-supported monthly e-zine format in which subscribers
3bc3c5be 253can download issues as PDF documents. In 2006, I<TPJ> merged with Dr.
254Dobbs Journal (online edition). To read old I<TPJ> articles, see
761f3ec6 255http://www.ddj.com/ or brian d foy's index of online TPJ content
ab098d01 256( http://www.perlmonks.org/index.pl?node_id=711609 ).
ac9dac7f 257
87275199 258=head2 What mailing lists are there for Perl?
68dc0745 259
3bc3c5be 260Most of the major modules (C<Tk>, C<CGI>, C<libwww-perl>) have their own
ab098d01 261mailing lists. Consult the documentation that came with the module for
c355f4f4 262subscription information.
68dc0745 263
761f3ec6 264A comprehensive list of Perl-related mailing lists can be found at:
ccbb3b41 265
49d635f9 266 http://lists.perl.org/
83a70550 267
fcd1fd07 268=head2 Where are the archives for comp.lang.perl.misc?
68dc0745 269
b0bd3af0 270The Google search engine now carries archived and searchable newsgroup
197aec24 271content.
68dc0745 272
109f0441 273http://groups.google.com/group/comp.lang.perl.misc/topics
68dc0745 274
b0bd3af0
EHA
275If you have a question, you can be sure someone has already asked the
276same question at some point on c.l.p.m. It requires some time and patience
277to sift through all the content but often you will find the answer you
278seek.
68dc0745 279
b68463f7 280=head2 Where can I buy a commercial version of perl?
68dc0745 281
b68463f7 282In a real sense, perl already I<is> commercial software: it has a license
65acb1b1
TC
283that you can grab and carefully read to your manager. It is distributed
284in releases and comes in well-defined packages. There is a very large
ab098d01 285user community and an extensive literature. The comp.lang.perl.*
65acb1b1 286newsgroups and several of the mailing lists provide free answers to your
ab098d01 287questions in near real-time. Perl has traditionally been supported by
8305e449 288Larry, scores of software designers and developers, and myriad
65acb1b1
TC
289programmers, all working for free to create a useful thing to make life
290better for everyone.
68dc0745 291
292However, these answers may not suffice for managers who require a
65acb1b1
TC
293purchase order from a company whom they can sue should anything go awry.
294Or maybe they need very serious hand-holding and contractual obligations.
b68463f7 295Shrink-wrapped CDs with perl on them are available from several sources if
ab098d01 296that will help. For example, many Perl books include a distribution of perl,
a6dd486b 297as do the O'Reilly Perl Resource Kits (in both the Unix flavor
65acb1b1 298and in the proprietary Microsoft flavor); the free Unix distributions
b68463f7 299also all come with perl.
68dc0745 300
68dc0745 301=head2 Where do I send bug reports?
302
109f0441
S
303(contributed by brian d foy)
304
305First, ensure that you've found an actual bug. Second, ensure you've
306found an actual bug.
307
308If you've found a bug with the perl interpreter or one of the modules
309in the standard library (those that come with Perl), you can use the
7f89f796 310L<perlbug> utility that comes with Perl (>= 5.004). It collects
109f0441
S
311information about your installation to include with your message, then
312sends the message to the right place.
b68463f7 313
109f0441
S
314To determine if a module came with your version of Perl, you can
315use the C<Module::CoreList> module. It has the information about
316the modules (with their versions) included with each release of Perl.
68dc0745 317
3bc3c5be 318If C<Module::CoreList> is not installed on your system, check out
319http://perlpunks.de/corelist .
320
109f0441
S
321Every CPAN module has a bug tracker set up in RT, http://rt.cpan.org .
322You can submit bugs to RT either through its web interface or by
323email. To email a bug report, send it to
324bug-E<lt>distribution-nameE<gt>@rt.cpan.org . For example, if you
325wanted to report a bug in C<Business::ISBN>, you could send a message to
326bug-Business-ISBN@rt.cpan.org .
68dc0745 327
109f0441
S
328Some modules might have special reporting requirements, such as a
329Sourceforge or Google Code tracking system, so you should check the
330module documentation too.
68dc0745 331
06a5f41f 332=head2 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
68dc0745 333
19c63c21 334Perl.com ( http://www.perl.com/ ) used to be part of the O'Reilly
335Network, a subsidiary of O'Reilly Media. Although it retains most of
336the original content from its O'Reilly Network, it is now hosted by
337The Perl Foundation.
68dc0745 338
c98c5709 339The Perl Foundation is an advocacy organization for the Perl language
19c63c21 340which maintains the web site ( http://www.perl.org/ ) as a general
c98c5709
RGS
341advocacy site for the Perl language. It uses the domain to provide
342general support services to the Perl community, including the hosting
ab098d01 343of mailing lists, web sites, and other services. There are also many
19c63c21 344other sub-domains for special topics like learning Perl, Perl news,
345jobs in Perl, such as:
c98c5709 346
19c63c21 347 http://www.perl.org/
c98c5709 348 http://learn.perl.org/
c98c5709
RGS
349 http://jobs.perl.org/
350 http://lists.perl.org/
90bb42f6
GS
351
352Perl Mongers uses the pm.org domain for services related to Perl user
ab098d01 353groups, including the hosting of mailing lists and web sites. See the
19c63c21 354Perl Mongers website ( http://www.pm.org/ ) for more information about
74078192 355joining, starting, or requesting services for a Perl user group.
90bb42f6 356
19c63c21 357CPAN, or the Comprehensive Perl Archive Network (
358http://www.cpan.org/ ), is a replicated, worldwide repository of Perl
80ffd05b
KW
359software.
360See L<What is CPAN?|/"What modules and extensions are available for Perl? What is CPAN? What does CPANE<sol>srcE<sol>... mean?">.
06a5f41f 361
68dc0745 362=head1 AUTHOR AND COPYRIGHT
363
8d2e243f 364Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington, and
7678cced 365other authors as noted. All rights reserved.
5a964f20 366
5a7beb56
JH
367This documentation is free; you can redistribute it and/or modify it
368under the same terms as Perl itself.
c8db1d39 369
87275199 370Irrespective of its distribution, all code examples here are in the public
ab098d01 371domain. You are permitted and encouraged to use this code and any
c8db1d39 372derivatives thereof in your own programs for fun or for profit as you
ab098d01 373see fit. A simple comment in the code giving credit to the FAQ would
c8db1d39 374be courteous but is not required.