Commit | Line | Data |
68dc0745 |
1 | =head1 NAME |
2 | |
65acb1b1 |
3 | perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.30 $, $Date: 1998/12/29 19:43:32 $) |
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 | |
11 | =head2 What machines support Perl? Where do I get it? |
12 | |
13 | The standard release of Perl (the one maintained by the perl |
5e3006a4 |
14 | development team) is distributed only in source code form. You |
65acb1b1 |
15 | can find this at http://www.perl.com/CPAN/src/latest.tar.gz , which |
5e3006a4 |
16 | in standard Internet format (a gzipped archive in POSIX tar format). |
17 | |
18 | Perl builds and runs on a bewildering number of platforms. Virtually |
19 | all known and current Unix derivatives are supported (Perl's native |
20 | platform), as are proprietary systems like VMS, DOS, OS/2, Windows, |
21 | QNX, BeOS, and the Amiga. There are also the beginnings of support |
22 | for MPE/iX. |
23 | |
24 | Binary distributions for some proprietary platforms, including |
65acb1b1 |
25 | Apple systems, can be found http://www.perl.com/CPAN/ports/ directory. |
5e3006a4 |
26 | Because these are not part of the standard distribution, they may |
27 | and in fact do differ from the base Perl port in a variety of ways. |
28 | You'll have to check their respective release notes to see just |
29 | what the differences are. These differences can be either positive |
30 | (e.g. extensions for the features of the particular platform that |
31 | are not supported in the source release of perl) or negative (e.g. |
32 | might be based upon a less current source release of perl). |
92c2ed05 |
33 | |
68dc0745 |
34 | =head2 How can I get a binary version of Perl? |
35 | |
65acb1b1 |
36 | If you don't have a C compiler because your vendor for whatever |
37 | reasons did not include one with your system, the best thing to do is |
68dc0745 |
38 | grab a binary version of gcc from the net and use that to compile perl |
39 | with. CPAN only has binaries for systems that are terribly hard to |
40 | get free compilers for, not for Unix systems. |
41 | |
65acb1b1 |
42 | Some URLs that might help you are: |
43 | |
44 | http://language.perl.com/info/software.html |
45 | http://www.perl.com/latest/ |
46 | http://www.perl.com/CPAN/ports/ |
47 | |
48 | If you want information on proprietary systems. A simple installation |
49 | guide for MS-DOS is available at http://www.cs.ruu.nl/~piet/perl5dos.html |
50 | and similarly for Windows 3.1 at http://www.cs.ruu.nl/~piet/perlwin3.html . |
3fe9a6f1 |
51 | |
52 | =head2 I don't have a C compiler on my system. How can I compile perl? |
53 | |
54 | Since you don't have a C compiler, you're doomed and your vendor |
55 | should be sacrificed to the Sun gods. But that doesn't help you. |
56 | |
57 | What you need to do is get a binary version of gcc for your system |
58 | first. Consult the Usenet FAQs for your operating system for |
59 | information on where to get such a binary version. |
60 | |
68dc0745 |
61 | =head2 I copied the Perl binary from one machine to another, but scripts don't work. |
62 | |
63 | That's probably because you forgot libraries, or library paths differ. |
64 | You really should build the whole distribution on the machine it will |
65 | eventually live on, and then type C<make install>. Most other |
66 | approaches are doomed to failure. |
67 | |
68 | One simple way to check that things are in the right place is to print out |
46fc3d4c |
69 | the hard-coded @INC which perl is looking for. |
68dc0745 |
70 | |
65acb1b1 |
71 | % perl -e 'print join("\n",@INC)' |
68dc0745 |
72 | |
73 | If this command lists any paths which don't exist on your system, then you |
74 | may need to move the appropriate libraries to these locations, or create |
65acb1b1 |
75 | symlinks, aliases, or shortcuts appropriately. @INC is also printed as |
76 | part of the output of |
77 | |
78 | % perl -V |
68dc0745 |
79 | |
3fe9a6f1 |
80 | You might also want to check out L<perlfaq8/"How do I keep my own |
81 | module/library directory?">. |
82 | |
68dc0745 |
83 | =head2 I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work? |
84 | |
85 | Read the F<INSTALL> file, which is part of the source distribution. |
65acb1b1 |
86 | It describes in detail how to cope with most idiosyncrasies that the |
68dc0745 |
87 | Configure script can't work around for any given system or |
88 | architecture. |
89 | |
90 | =head2 What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean? |
91 | |
92 | CPAN stands for Comprehensive Perl Archive Network, a huge archive |
93 | replicated on dozens of machines all over the world. CPAN contains |
46fc3d4c |
94 | source code, non-native ports, documentation, scripts, and many |
68dc0745 |
95 | third-party modules and extensions, designed for everything from |
96 | commercial database interfaces to keyboard/screen control to web |
97 | walking and CGI scripts. The master machine for CPAN is |
98 | ftp://ftp.funet.fi/pub/languages/perl/CPAN/, but you can use the |
99 | address http://www.perl.com/CPAN/CPAN.html to fetch a copy from a |
100 | "site near you". See http://www.perl.com/CPAN (without a slash at the |
101 | end) for how this process works. |
102 | |
103 | CPAN/path/... is a naming convention for files available on CPAN |
104 | sites. CPAN indicates the base directory of a CPAN mirror, and the |
105 | rest of the path is the path from that directory to the file. For |
106 | instance, if you're using ftp://ftp.funet.fi/pub/languages/perl/CPAN |
107 | as your CPAN site, the file CPAN/misc/japh file is downloadable as |
108 | ftp://ftp.funet.fi/pub/languages/perl/CPAN/misc/japh . |
109 | |
110 | Considering that there are hundreds of existing modules in the |
111 | archive, one probably exists to do nearly anything you can think of. |
112 | Current categories under CPAN/modules/by-category/ include perl core |
113 | modules; development support; operating system interfaces; networking, |
114 | devices, and interprocess communication; data type utilities; database |
115 | interfaces; user interfaces; interfaces to other languages; filenames, |
116 | file systems, and file locking; internationalization and locale; world |
117 | wide web support; server and daemon utilities; archiving and |
118 | compression; image manipulation; mail and news; control flow |
119 | utilities; filehandle and I/O; Microsoft Windows modules; and |
120 | miscellaneous modules. |
121 | |
122 | =head2 Is there an ISO or ANSI certified version of Perl? |
123 | |
124 | Certainly not. Larry expects that he'll be certified before Perl is. |
125 | |
126 | =head2 Where can I get information on Perl? |
127 | |
5a964f20 |
128 | The complete Perl documentation is available with the perl distribution. |
129 | If you have perl installed locally, you probably have the documentation |
130 | installed as well: type C<man perl> if you're on a system resembling Unix. |
131 | This will lead you to other important man pages, including how to set your |
132 | $MANPATH. If you're not on a Unix system, access to the documentation |
133 | will be different; for example, it might be only in HTML format. But all |
134 | proper perl installations have fully-accessible documentation. |
68dc0745 |
135 | |
136 | You might also try C<perldoc perl> in case your system doesn't |
137 | have a proper man command, or it's been misinstalled. If that doesn't |
138 | work, try looking in /usr/local/lib/perl5/pod for documentation. |
139 | |
140 | If all else fails, consult the CPAN/doc directory, which contains the |
141 | complete documentation in various formats, including native pod, |
142 | troff, html, and plain text. There's also a web page at |
143 | http://www.perl.com/perl/info/documentation.html that might help. |
144 | |
68dc0745 |
145 | Many good books have been written about Perl -- see the section below |
146 | for more details. |
147 | |
65acb1b1 |
148 | Tutorial documents are included in current or upcoming Perl releases |
149 | include L<perltoot> for objects, L<perlopentut> for file opening |
150 | semantics, L<perlreftut> for managing references, and L<perlxstut> |
151 | for linking C and Perl together. There may be more by the |
152 | time you read this. The following URLs might also be of |
153 | assistance: |
154 | |
155 | http://language.perl.com/info/documentation.html |
156 | http://reference.perl.com/query.cgi?tutorials |
157 | |
68dc0745 |
158 | =head2 What are the Perl newsgroups on USENET? Where do I post questions? |
159 | |
160 | The now defunct comp.lang.perl newsgroup has been superseded by the |
161 | following groups: |
162 | |
163 | comp.lang.perl.announce Moderated announcement group |
164 | comp.lang.perl.misc Very busy group about Perl in general |
5a964f20 |
165 | comp.lang.perl.moderated Moderated discussion group |
68dc0745 |
166 | comp.lang.perl.modules Use and development of Perl modules |
167 | comp.lang.perl.tk Using Tk (and X) from Perl |
168 | |
169 | comp.infosystems.www.authoring.cgi Writing CGI scripts for the Web. |
170 | |
171 | There is also USENET gateway to the mailing list used by the crack |
172 | Perl development team (perl5-porters) at |
5a964f20 |
173 | news://news.perl.com/perl.porters-gw/ . |
68dc0745 |
174 | |
175 | =head2 Where should I post source code? |
176 | |
65acb1b1 |
177 | You should post source code to whichever group is most appropriate, but |
178 | feel free to cross-post to comp.lang.perl.misc. If you want to cross-post |
179 | to alt.sources, please make sure it follows their posting standards, |
180 | including setting the Followup-To header line to NOT include alt.sources; |
181 | see their FAQ (http://www.faqs.org/faqs/alt-sources-intro/) for details. |
68dc0745 |
182 | |
5a964f20 |
183 | If you're just looking for software, first use Alta Vista, Deja News, and |
184 | search CPAN. This is faster and more productive than just posting |
185 | a request. |
186 | |
68dc0745 |
187 | =head2 Perl Books |
188 | |
7b8d334a |
189 | A number of books on Perl and/or CGI programming are available. A few of |
68dc0745 |
190 | these are good, some are ok, but many aren't worth your money. Tom |
191 | Christiansen maintains a list of these books, some with extensive |
192 | reviews, at http://www.perl.com/perl/critiques/index.html. |
193 | |
5e3006a4 |
194 | The incontestably definitive reference book on Perl, written by |
195 | the creator of Perl, is now in its second edition: |
68dc0745 |
196 | |
197 | Programming Perl (the "Camel Book"): |
65acb1b1 |
198 | by Larry Wall, Tom Christiansen, and Randal Schwartz |
68dc0745 |
199 | ISBN 1-56592-149-6 (English) |
200 | ISBN 4-89052-384-7 (Japanese) |
5e3006a4 |
201 | URL: http://www.oreilly.com/catalog/pperl2/ |
202 | (French, German, Italian, and Hungarian translations also |
203 | available) |
68dc0745 |
204 | |
5e3006a4 |
205 | The companion volume to the Camel containing thousands |
206 | of real-world examples, mini-tutorials, and complete programs |
207 | (first premiering at the 1998 Perl Conference), is: |
208 | |
209 | The Perl Cookbook (the "Ram Book"): |
65acb1b1 |
210 | by Tom Christiansen and Nathan Torkington, |
5e3006a4 |
211 | with Foreword by Larry Wall |
212 | ISBN: 1-56592-243-3 |
213 | URL: http://perl.oreilly.com/cookbook/ |
68dc0745 |
214 | |
5a964f20 |
215 | If you're already a hard-core systems programmer, then the Camel Book |
216 | might suffice for you to learn Perl from. But if you're not, check |
5e3006a4 |
217 | out: |
218 | |
219 | Learning Perl (the "Llama Book"): |
65acb1b1 |
220 | by Randal Schwartz and Tom Christiansen |
5e3006a4 |
221 | with Foreword by Larry Wall |
222 | ISBN: 1-56592-284-0 |
223 | URL: http://www.oreilly.com/catalog/lperl2/ |
224 | |
225 | Despite the picture at the URL above, the second edition of "Llama |
226 | Book" really has a blue cover, and is updated for the 5.004 release |
227 | of Perl. Various foreign language editions are available, including |
228 | I<Learning Perl on Win32 Systems> (the Gecko Book). |
5a964f20 |
229 | |
230 | If you're not an accidental programmer, but a more serious and possibly |
231 | even degreed computer scientist who doesn't need as much hand-holding as |
232 | we try to provide in the Llama or its defurred cousin the Gecko, please |
233 | check out the delightful book, I<Perl: The Programmer's Companion>, |
234 | written by Nigel Chapman. |
235 | |
c8db1d39 |
236 | You can order O'Reilly books directly from O'Reilly & Associates, |
5a964f20 |
237 | 1-800-998-9938. Local/overseas is 1-707-829-0515. If you can |
238 | locate an O'Reilly order form, you can also fax to 1-707-829-0104. |
239 | See http://www.ora.com/ on the Web. |
240 | |
68dc0745 |
241 | What follows is a list of the books that the FAQ authors found personally |
242 | useful. Your mileage may (but, we hope, probably won't) vary. |
243 | |
65acb1b1 |
244 | Recommended books on (or mostly on) Perl follow; those marked with |
5e3006a4 |
245 | a star may be ordered from O'Reilly. |
68dc0745 |
246 | |
5a964f20 |
247 | =over |
68dc0745 |
248 | |
5a964f20 |
249 | =item References |
68dc0745 |
250 | |
5a964f20 |
251 | *Programming Perl |
252 | by Larry Wall, Tom Christiansen, and Randal L. Schwartz |
68dc0745 |
253 | |
5a964f20 |
254 | *Perl 5 Desktop Reference |
255 | By Johan Vromans |
68dc0745 |
256 | |
5a964f20 |
257 | =item Tutorials |
258 | |
259 | *Learning Perl [2nd edition] |
260 | by Randal L. Schwartz and Tom Christiansen |
5e3006a4 |
261 | with foreword by Larry Wall |
68dc0745 |
262 | |
5a964f20 |
263 | *Learning Perl on Win32 Systems |
264 | by Randal L. Schwartz, Erik Olson, and Tom Christiansen, |
265 | with foreword by Larry Wall |
68dc0745 |
266 | |
5a964f20 |
267 | Perl: The Programmer's Companion |
268 | by Nigel Chapman |
68dc0745 |
269 | |
5a964f20 |
270 | Cross-Platform Perl |
271 | by Eric F. Johnson |
68dc0745 |
272 | |
5a964f20 |
273 | MacPerl: Power and Ease |
274 | by Vicki Brown and Chris Nandor, foreword by Matthias Neeracher |
68dc0745 |
275 | |
65acb1b1 |
276 | =item Task-Oriented |
5a964f20 |
277 | |
278 | *The Perl Cookbook |
279 | by Tom Christiansen and Nathan Torkington |
280 | with foreword by Larry Wall |
281 | |
282 | Perl5 Interactive Course [2nd edition] |
283 | by Jon Orwant |
284 | |
285 | *Advanced Perl Programming |
286 | by Sriram Srinivasan |
68dc0745 |
287 | |
5a964f20 |
288 | Effective Perl Programming |
289 | by Joseph Hall |
68dc0745 |
290 | |
5a964f20 |
291 | =item Special Topics |
292 | |
293 | *Mastering Regular Expressions |
294 | by Jeffrey Friedl |
295 | |
296 | How to Set up and Maintain a World Wide Web Site [2nd edition] |
297 | by Lincoln Stein |
298 | |
299 | =back |
300 | |
301 | =head2 Perl in Magazines |
302 | |
303 | The first and only periodical devoted to All Things Perl, I<The |
304 | Perl Journal> contains tutorials, demonstrations, case studies, |
305 | announcements, contests, and much more. TPJ has columns on web |
306 | development, databases, Win32 Perl, graphical programming, regular |
5e3006a4 |
307 | expressions, and networking, and sponsors the Obfuscated Perl |
308 | Contest. It is published quarterly under the gentle hand of its |
309 | editor, Jon Orwant. See http://www.tpj.com/ or send mail to |
65acb1b1 |
310 | subscriptions@tpj.com . |
5a964f20 |
311 | |
312 | Beyond this, magazines that frequently carry high-quality articles |
313 | on Perl are I<Web Techniques> (see http://www.webtechniques.com/), |
c8db1d39 |
314 | I<Performance Computing> (http://www.performance-computing.com/), and Usenix's |
5a964f20 |
315 | newsletter/magazine to its members, I<login:>, at http://www.usenix.org/. |
316 | Randal's Web Technique's columns are available on the web at |
317 | http://www.stonehenge.com/merlyn/WebTechniques/. |
68dc0745 |
318 | |
319 | =head2 Perl on the Net: FTP and WWW Access |
320 | |
321 | To get the best (and possibly cheapest) performance, pick a site from |
322 | the list below and use it to grab the complete list of mirror sites. |
65acb1b1 |
323 | >From there you can find the quickest site for you. Remember, the |
68dc0745 |
324 | following list is I<not> the complete list of CPAN mirrors. |
325 | |
65acb1b1 |
326 | http://www.perl.com/CPAN-local |
327 | http://www.perl.com/CPAN (redirects to an ftp mirror) |
68dc0745 |
328 | http://www.perl.org/CPAN |
329 | ftp://ftp.funet.fi/pub/languages/perl/CPAN/ |
330 | http://www.cs.ruu.nl/pub/PERL/CPAN/ |
331 | ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ |
332 | |
333 | =head2 What mailing lists are there for perl? |
334 | |
335 | Most of the major modules (tk, CGI, libwww-perl) have their own |
336 | mailing lists. Consult the documentation that came with the module for |
65acb1b1 |
337 | subscription information. The Perl Institute attempts to maintain a |
338 | list of mailing lists at: |
68dc0745 |
339 | |
65acb1b1 |
340 | http://www.perl.org/maillist.html |
68dc0745 |
341 | |
65acb1b1 |
342 | =head2 Archives of comp.lang.perl.misc |
68dc0745 |
343 | |
65acb1b1 |
344 | Have you tried Deja News or Alta Vista? Those are the |
345 | best archives. Just look up "*perl*" as a newsgroup. |
68dc0745 |
346 | |
65acb1b1 |
347 | http://www.dejanews.com/dnquery.xp?QRY=&DBS=2&ST=PS&defaultOp=AND&LNG=ALL&format=terse&showsort=date&maxhits=25&subjects=&groups=*perl*&authors=&fromdate=&todate= |
68dc0745 |
348 | |
65acb1b1 |
349 | You'll probably want to trim that down a bit, though. |
68dc0745 |
350 | |
351 | ftp.cis.ufl.edu:/pub/perl/comp.lang.perl.*/monthly has an almost |
352 | complete collection dating back to 12/89 (missing 08/91 through |
353 | 12/93). They are kept as one large file for each month. |
354 | |
355 | You'll probably want more a sophisticated query and retrieval mechanism |
356 | than a file listing, preferably one that allows you to retrieve |
357 | articles using a fast-access indices, keyed on at least author, date, |
358 | subject, thread (as in "trn") and probably keywords. The best |
359 | solution the FAQ authors know of is the MH pick command, but it is |
360 | very slow to select on 18000 articles. |
361 | |
362 | If you have, or know where can be found, the missing sections, please |
363 | let perlfaq-suggestions@perl.com know. |
364 | |
68dc0745 |
365 | =head2 Where can I buy a commercial version of Perl? |
366 | |
65acb1b1 |
367 | In a real sense, Perl already I<is> commercial software: It has a licence |
368 | that you can grab and carefully read to your manager. It is distributed |
369 | in releases and comes in well-defined packages. There is a very large |
370 | user community and an extensive literature. The comp.lang.perl.* |
371 | newsgroups and several of the mailing lists provide free answers to your |
372 | questions in near real-time. Perl has traditionally been supported by |
373 | Larry, scores of software designers and developers, and myriads of |
374 | programmers, all working for free to create a useful thing to make life |
375 | better for everyone. |
68dc0745 |
376 | |
377 | However, these answers may not suffice for managers who require a |
65acb1b1 |
378 | purchase order from a company whom they can sue should anything go awry. |
379 | Or maybe they need very serious hand-holding and contractual obligations. |
380 | Shrink-wrapped CDs with perl on them are available from several sources if |
381 | that will help. For example, many perl books carry a perl distribution |
382 | on them, as do the O'Reily Perl Resource Kits (in both the Unix flavor |
383 | and in the proprietary Microsoft flavor); the free Unix distributions |
384 | also all come with Perl. |
68dc0745 |
385 | |
386 | Or you can purchase a real support contract. Although Cygnus historically |
387 | provided this service, they no longer sell support contracts for Perl. |
388 | Instead, the Paul Ingram Group will be taking up the slack through The |
389 | Perl Clinic. The following is a commercial from them: |
390 | |
391 | "Do you need professional support for Perl and/or Oraperl? Do you need |
392 | a support contract with defined levels of service? Do you want to pay |
393 | only for what you need? |
394 | |
395 | "The Paul Ingram Group has provided quality software development and |
396 | support services to some of the world's largest corporations for ten |
397 | years. We are now offering the same quality support services for Perl |
398 | at The Perl Clinic. This service is led by Tim Bunce, an active perl |
399 | porter since 1994 and well known as the author and maintainer of the |
400 | DBI, DBD::Oracle, and Oraperl modules and author/co-maintainer of The |
401 | Perl 5 Module List. We also offer Oracle users support for Perl5 |
402 | Oraperl and related modules (which Oracle is planning to ship as part |
403 | of Oracle Web Server 3). 20% of the profit from our Perl support work |
404 | will be donated to The Perl Institute." |
405 | |
65acb1b1 |
406 | For more information, contact The Perl Clinic: |
68dc0745 |
407 | |
408 | Tel: +44 1483 424424 |
409 | Fax: +44 1483 419419 |
410 | Web: http://www.perl.co.uk/ |
411 | Email: perl-support-info@perl.co.uk or Tim.Bunce@ig.co.uk |
412 | |
65acb1b1 |
413 | See also www.perl.com for updates on tutorials, training, and support. |
5e3006a4 |
414 | |
68dc0745 |
415 | =head2 Where do I send bug reports? |
416 | |
417 | If you are reporting a bug in the perl interpreter or the modules |
5a964f20 |
418 | shipped with perl, use the I<perlbug> program in the perl distribution or |
65acb1b1 |
419 | mail your report to perlbug@perl.com . |
68dc0745 |
420 | |
46fc3d4c |
421 | If you are posting a bug with a non-standard port (see the answer to |
68dc0745 |
422 | "What platforms is Perl available for?"), a binary distribution, or a |
46fc3d4c |
423 | non-standard module (such as Tk, CGI, etc), then please see the |
68dc0745 |
424 | documentation that came with it to determine the correct place to post |
425 | bugs. |
426 | |
5a964f20 |
427 | Read the perlbug(1) man page (perl5.004 or later) for more information. |
68dc0745 |
428 | |
65acb1b1 |
429 | =head2 What is perl.com? |
68dc0745 |
430 | |
65acb1b1 |
431 | The perl.com domain is owned by Tom Christiansen, who created it as a |
5a964f20 |
432 | public service long before perl.org came about. Despite the name, it's a |
433 | pretty non-commercial site meant to be a clearinghouse for information |
434 | about all things Perlian, accepting no paid advertisements, bouncy |
435 | happy gifs, or silly java applets on its pages. The Perl Home Page at |
436 | http://www.perl.com/ is currently hosted on a T3 line courtesy of Songline |
437 | Systems, a software-oriented subsidiary of O'Reilly and Associates. |
65acb1b1 |
438 | Other starting points include |
5a964f20 |
439 | |
65acb1b1 |
440 | http://language.perl.com/ |
441 | http://conference.perl.com/ |
442 | http://reference.perl.com/ |
68dc0745 |
443 | |
444 | =head1 AUTHOR AND COPYRIGHT |
445 | |
65acb1b1 |
446 | Copyright (c) 1997-1999 Tom Christiansen and Nathan Torkington. |
5a964f20 |
447 | All rights reserved. |
448 | |
c8db1d39 |
449 | When included as an integrated part of the Standard Distribution |
450 | of Perl or of its documentation (printed or otherwise), this works is |
451 | covered under Perl's Artistic Licence. For separate distributions of |
452 | all or part of this FAQ outside of that, see L<perlfaq>. |
453 | |
454 | Irrespective of its distribution, all code examples here are public |
455 | domain. You are permitted and encouraged to use this code and any |
456 | derivatives thereof in your own programs for fun or for profit as you |
457 | see fit. A simple comment in the code giving credit to the FAQ would |
458 | be courteous but is not required. |
65acb1b1 |
459 | |