This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In Perl_pad_new(), allocate a 2 element array for padlist.
[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
3bc3c5be 119C<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
3bc3c5be 123as your CPAN site, the file C<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
65acb1b1 168Tutorial documents are 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
ac9dac7f
RGS
231I<The Perl Review> ( http://www.theperlreview.com ) focuses on Perl
232almost completely (although it sometimes sneaks in an article about
ac003c96
RGS
233another language). There's also I<$foo Magazin>, a german magazine
234dedicated to Perl, at ( http://www.foo-magazin.de ).
ac9dac7f 235
3bc3c5be 236The I<Perl-Zeitung> is a German-speaking magazine for Perl beginners
237(see http://perl-zeitung.at.tf ).
238
ac9dac7f
RGS
239Magazines that frequently carry quality articles on Perl include I<The
240Perl Review> ( http://www.theperlreview.com ), I<Unix Review> (
241http://www.unixreview.com/ ), I<Linux Magazine> (
242http://www.linuxmagazine.com/ ), and Usenix's newsletter/magazine to
3bc3c5be 243its members, I<login:> ( http://www.usenix.org/ ).
41eb6b36 244
ae6d88cb 245The Perl columns of Randal L. Schwartz are available on the web at
41eb6b36
JH
246http://www.stonehenge.com/merlyn/WebTechniques/ ,
247http://www.stonehenge.com/merlyn/UnixReview/ , and
248http://www.stonehenge.com/merlyn/LinuxMag/ .
68dc0745 249
ac9dac7f
RGS
250The first (and for a long time, only) periodical devoted to All Things
251Perl, I<The Perl Journal> contains tutorials, demonstrations, case
ab098d01 252studies, announcements, contests, and much more. I<TPJ> has columns
ac9dac7f
RGS
253on web development, databases, Win32 Perl, graphical programming,
254regular expressions, and networking, and sponsors the Obfuscated Perl
ab098d01 255Contest and the Perl Poetry Contests. Beginning in November 2002, I<TPJ>
ac9dac7f 256moved to a reader-supported monthly e-zine format in which subscribers
3bc3c5be 257can download issues as PDF documents. In 2006, I<TPJ> merged with Dr.
258Dobbs Journal (online edition). To read old I<TPJ> articles, see
ab098d01 259http://www.ddj.com/ , brian d foy's index of online TPJ content
260( http://www.perlmonks.org/index.pl?node_id=711609 ).
ac9dac7f 261
87275199 262=head2 What mailing lists are there for Perl?
68dc0745 263
3bc3c5be 264Most of the major modules (C<Tk>, C<CGI>, C<libwww-perl>) have their own
ab098d01 265mailing lists. Consult the documentation that came with the module for
c355f4f4 266subscription information.
68dc0745 267
ccbb3b41
IT
268A comprehensive list of Perl related mailing lists can be found at:
269
49d635f9 270 http://lists.perl.org/
83a70550 271
fcd1fd07 272=head2 Where are the archives for comp.lang.perl.misc?
68dc0745 273
b0bd3af0 274The Google search engine now carries archived and searchable newsgroup
197aec24 275content.
68dc0745 276
109f0441 277http://groups.google.com/group/comp.lang.perl.misc/topics
68dc0745 278
b0bd3af0
EHA
279If you have a question, you can be sure someone has already asked the
280same question at some point on c.l.p.m. It requires some time and patience
281to sift through all the content but often you will find the answer you
282seek.
68dc0745 283
b68463f7 284=head2 Where can I buy a commercial version of perl?
68dc0745 285
b68463f7 286In a real sense, perl already I<is> commercial software: it has a license
65acb1b1
TC
287that you can grab and carefully read to your manager. It is distributed
288in releases and comes in well-defined packages. There is a very large
ab098d01 289user community and an extensive literature. The comp.lang.perl.*
65acb1b1 290newsgroups and several of the mailing lists provide free answers to your
ab098d01 291questions in near real-time. Perl has traditionally been supported by
8305e449 292Larry, scores of software designers and developers, and myriad
65acb1b1
TC
293programmers, all working for free to create a useful thing to make life
294better for everyone.
68dc0745 295
296However, these answers may not suffice for managers who require a
65acb1b1
TC
297purchase order from a company whom they can sue should anything go awry.
298Or maybe they need very serious hand-holding and contractual obligations.
b68463f7 299Shrink-wrapped CDs with perl on them are available from several sources if
ab098d01 300that will help. For example, many Perl books include a distribution of perl,
a6dd486b 301as do the O'Reilly Perl Resource Kits (in both the Unix flavor
65acb1b1 302and in the proprietary Microsoft flavor); the free Unix distributions
b68463f7 303also all come with perl.
68dc0745 304
68dc0745 305=head2 Where do I send bug reports?
306
109f0441
S
307(contributed by brian d foy)
308
309First, ensure that you've found an actual bug. Second, ensure you've
310found an actual bug.
311
312If you've found a bug with the perl interpreter or one of the modules
313in the standard library (those that come with Perl), you can use the
7f89f796 314L<perlbug> utility that comes with Perl (>= 5.004). It collects
109f0441
S
315information about your installation to include with your message, then
316sends the message to the right place.
b68463f7 317
109f0441
S
318To determine if a module came with your version of Perl, you can
319use the C<Module::CoreList> module. It has the information about
320the modules (with their versions) included with each release of Perl.
68dc0745 321
3bc3c5be 322If C<Module::CoreList> is not installed on your system, check out
323http://perlpunks.de/corelist .
324
109f0441
S
325Every CPAN module has a bug tracker set up in RT, http://rt.cpan.org .
326You can submit bugs to RT either through its web interface or by
327email. To email a bug report, send it to
328bug-E<lt>distribution-nameE<gt>@rt.cpan.org . For example, if you
329wanted to report a bug in C<Business::ISBN>, you could send a message to
330bug-Business-ISBN@rt.cpan.org .
68dc0745 331
109f0441
S
332Some modules might have special reporting requirements, such as a
333Sourceforge or Google Code tracking system, so you should check the
334module documentation too.
68dc0745 335
06a5f41f 336=head2 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?
68dc0745 337
c98c5709
RGS
338Perl.com at http://www.perl.com/ is part of the O'Reilly Network, a
339subsidiary of O'Reilly Media.
68dc0745 340
c98c5709
RGS
341The Perl Foundation is an advocacy organization for the Perl language
342which maintains the web site http://www.perl.org/ as a general
343advocacy site for the Perl language. It uses the domain to provide
344general support services to the Perl community, including the hosting
ab098d01 345of mailing lists, web sites, and other services. There are also many
c195e131
RGS
346other sub-domains for special topics like learning Perl, Perl news, jobs
347in Perl, such as:
c98c5709
RGS
348
349 http://learn.perl.org/
350 http://use.perl.org/
351 http://jobs.perl.org/
352 http://lists.perl.org/
90bb42f6
GS
353
354Perl Mongers uses the pm.org domain for services related to Perl user
ab098d01 355groups, including the hosting of mailing lists and web sites. See the
74078192
DA
356Perl user group web site at http://www.pm.org/ for more information about
357joining, starting, or requesting services for a Perl user group.
90bb42f6 358
06a5f41f 359http://www.cpan.org/ is the Comprehensive Perl Archive Network,
d7f8936a 360a replicated worldwide repository of Perl software, see
06a5f41f
JH
361the I<What is CPAN?> question earlier in this document.
362
68dc0745 363=head1 AUTHOR AND COPYRIGHT
364
8d2e243f 365Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington, and
7678cced 366other authors as noted. All rights reserved.
5a964f20 367
5a7beb56
JH
368This documentation is free; you can redistribute it and/or modify it
369under the same terms as Perl itself.
c8db1d39 370
87275199 371Irrespective of its distribution, all code examples here are in the public
ab098d01 372domain. You are permitted and encouraged to use this code and any
c8db1d39 373derivatives thereof in your own programs for fun or for profit as you
ab098d01 374see fit. A simple comment in the code giving credit to the FAQ would
c8db1d39 375be courteous but is not required.