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