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