This is a live mirror of the Perl 5 development currently hosted at
Re-mention $foo Magazin in perlfaq2
[perl5.git] / pod / perlfaq2.pod
68dc0745 1=head1 NAME
109f0441 3perlfaq2 - Obtaining and Learning about Perl
68dc0745 4
7This section of the FAQ answers questions about where to find
92c2ed05 8source and documentation for Perl, support, and
68dc0745 9related matters.
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 .
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
22Binary distributions for some proprietary platforms can be found
23 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
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
34(contributed by brian d foy)
36ActiveState: Windows, Linux, Mac OS X, Solaris, AIX and HP-UX
109f0441 Solaris 2.5 to Solaris 10 (SPARC and x86)
109f0441 44Strawberry Perl: Windows, Perl 5.8.8 and 5.10.0
65acb1b1 45
109f0441 46
d12d61cf 47
109f0441 48IndigoPerl: Windows
65acb1b1 49
109f0441 50
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.
109f0441 61You might look around the net for a pre-built binary of Perl (or a
62C compiler!) that meets your needs, though:
c195e131 64For Windows, Vanilla Perl ( ) and Strawberry Perl
109f0441 65( ) come with a
66bundled C compiler. ActivePerl is a pre-compiled version of Perl
109f0441 69For Sun systems, provides binaries of most popular
70applications, including compilers and Perl.
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.
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
87part of the output of
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.
ab098d01 101=head2 What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean?
68dc0745 102
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 109 and there is the CPAN Multiplexer at
e573f903 110 which will choose a mirror near you via
ab098d01 111DNS. See (without a slash at the end) for
112how this process works. Also, has a nice
113interface to the mirror directory.
c355f4f4 114
115See the CPAN FAQ at 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
80ffd05b 123as your CPAN site, the file F<CPAN/misc/japh> is downloadable as
68dc0745 124 .
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/>
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 or
139 for a more complete list of modules by
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?
ab098d01 146Certainly not. Larry expects that he'll be certified before Perl is.
68dc0745 147
148=head2 Where can I get information on Perl?
150The complete Perl documentation is available with the Perl distribution.
151If you have Perl installed locally, you probably have the documentation
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
162If all else fails, consult which has the
163complete documentation in HTML and PDF format.
68dc0745 164
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
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
c355f4f4 177
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
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 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
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
196There is also a Usenet gateway to Perl mailing lists sponsored by at nntp:// , a web interface to the same lists
198at and these lists are also available
199under the C<perl.*> hierarchy at . Other
200groups are listed at ( also known as
201 ).
6670e5e7 203A nice place to ask questions is the PerlMonks site,
204 , or the Perl Beginners mailing list
205 .
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?
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
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 ( ) for details.
68dc0745 218
c355f4f4 219If you're just looking for software, first use Google
23bec515 220( ), Google's Usenet search interface
ab098d01 221( ), and CPAN Search ( ).
0bc0ad85 222This is faster and more productive than just posting a request.
5a964f20 223
68dc0745 224=head2 Perl Books
ab098d01 226There are many good books on Perl. See the L<perlbook> documentation or
227( ).
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( ). The I<Perl-Zeitung> is another
233German-speaking magazine for Perl beginners (see
234 ).
3bc3c5be 235
4b496e6e 236Magazines that frequently carry quality articles on Perl include
237I<Unix Review> ( ), I<Linux Magazine> (
ac9dac7f 238 ), and Usenix's newsletter/magazine to
3bc3c5be 239its members, I<login:> ( ).
41eb6b36 240
ae6d88cb 241The Perl columns of Randal L. Schwartz are available on the web at
242 ,
243 , and
244 .
68dc0745 245
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
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 255 or brian d foy's index of online TPJ content
ab098d01 256( ).
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
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 273
68dc0745 274
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
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
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
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
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?
303(contributed by brian d foy)
305First, ensure that you've found an actual bug. Second, ensure you've
306found an actual bug.
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
311information about your installation to include with your message, then
312sends the message to the right place.
b68463f7 313
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
319 .
321Every CPAN module has a bug tracker set up in RT, .
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> . For example, if you
325wanted to report a bug in C<Business::ISBN>, you could send a message to .
68dc0745 327
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 Mongers?
68dc0745 333
19c63c21 ( ) 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 ( ) as a general
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
c98c5709 348
352Perl Mongers uses the domain for services related to Perl user
ab098d01 353groups, including the hosting of mailing lists and web sites. See the
19c63c21 354Perl Mongers website ( ) 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 (
358 ), is a replicated, worldwide repository of Perl
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
8d2e243f 364Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington, and
7678cced 365other authors as noted. All rights reserved.
5a964f20 366
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.