First stab at 5.003 -> 5.004 integration.
[p5sagit/p5-mst-13.2.git] / pod / perlfaq2.pod
CommitLineData
68dc0745 1=head1 NAME
2
46fc3d4c 3perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.16 $, $Date: 1997/04/23 18:04:09 $)
68dc0745 4
5=head1 DESCRIPTION
6
7This section of the FAQ answers questions about where to find
8source and documentation for Perl, support and training, and
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),
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
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
121The complete Perl documentation is available with the perl
122distribution. If you have perl installed locally, you probably have
123the documentation installed as well: type C<man perl> if you're on a
124system resembling Unix. This will lead you to other important man
125pages. 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
127all proper perl installations have fully-accessible documentation.
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
138It's also worth noting that there's a PDF version of the complete
139documentation for perl available in the CPAN/authors/id/BMIDD
140directory.
141
142Many good books have been written about Perl -- see the section below
143for more details.
144
145=head2 What are the Perl newsgroups on USENET? Where do I post questions?
146
147The now defunct comp.lang.perl newsgroup has been superseded by the
148following groups:
149
150 comp.lang.perl.announce Moderated announcement group
151 comp.lang.perl.misc Very busy group about Perl in general
152 comp.lang.perl.modules Use and development of Perl modules
153 comp.lang.perl.tk Using Tk (and X) from Perl
154
155 comp.infosystems.www.authoring.cgi Writing CGI scripts for the Web.
156
157There is also USENET gateway to the mailing list used by the crack
158Perl development team (perl5-porters) at
159news://genetics.upenn.edu/perl.porters-gw/ .
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
169=head2 Perl Books
170
171A number books on Perl and/or CGI programming are available. A few of
172these are good, some are ok, but many aren't worth your money. Tom
173Christiansen maintains a list of these books, some with extensive
174reviews, at http://www.perl.com/perl/critiques/index.html.
175
176The incontestably definitive reference book on Perl, written by the
177creator of Perl and his apostles, is now in its second edition and
178fourth printing.
179
180 Programming Perl (the "Camel Book"):
181 Authors: Larry Wall, Tom Christiansen, and Randal Schwartz
182 ISBN 1-56592-149-6 (English)
183 ISBN 4-89052-384-7 (Japanese)
184 (French and German translations in progress)
185
186Note that O'Reilly books are color-coded: turquoise (some would call
187it teal) covers indicate perl5 coverage, while magenta (some would
188call it pink) covers indicate perl4 only. Check the cover color
189before you buy!
190
191What follows is a list of the books that the FAQ authors found personally
192useful. Your mileage may (but, we hope, probably won't) vary.
193
46fc3d4c 194If you're already a hard-core systems programmer, then the Camel Book
68dc0745 195just might suffice for you to learn Perl from. But if you're not,
196check out the "Llama Book". It currently doesn't cover perl5, but the
1972nd edition is nearly done and should be out by summer 97:
198
199 Learning Perl (the Llama Book):
200 Author: Randal Schwartz, with intro by Larry Wall
201 ISBN 1-56592-042-2 (English)
202 ISBN 4-89502-678-1 (Japanese)
203 ISBN 2-84177-005-2 (French)
204 ISBN 3-930673-08-8 (German)
205
206Another stand-out book in the turquoise O'Reilly Perl line is the "Hip
207Owls" book. It covers regular expressions inside and out, with quite a
208bit devoted exclusively to Perl:
209
210 Mastering Regular Expressions (the Cute Owls Book):
211 Author: Jeffrey Friedl
212 ISBN 1-56592-257-3
213
214You can order any of these books from O'Reilly & Associates,
2151-800-998-9938. Local/overseas is 1-707-829-0515. If you can locate
216an O'Reilly order form, you can also fax to 1-707-829-0104. See
217http://www.ora.com/ on the Web.
218
219Recommended Perl books that are not from O'Reilly are the following:
220
221 Cross-Platform Perl, (for Unix and Windows NT)
222 Author: Eric F. Johnson
223 ISBN: 1-55851-483-X
224
225 How to Set up and Maintain a World Wide Web Site, (2nd edition)
226 Author: Lincoln Stein, M.D., Ph.D.
227 ISBN: 0-201-63462-7
228
229 CGI Programming in C & Perl,
230 Author: Thomas Boutell
231 ISBN: 0-201-42219-0
232
233Note that some of these address specific application areas (e.g. the
234Web) and are not general-purpose programming books.
235
236=head2 Perl in Magazines
237
238The Perl Journal is the first and only magazine dedicated to Perl.
239It is published (on paper, not online) quarterly by Jon Orwant
240(orwant@tpj.com), editor. Subscription information is at http://tpj.com
241or via email to subscriptions@tpj.com.
242
3fe9a6f1 243Beyond this, two other magazines that frequently carry high-quality
244articles on Perl are Web Techniques (see
245http://www.webtechniques.com/) and Unix Review
246(http://www.unixreview.com/). Randal Schwartz's Web Technique's
247columns are available on the web at
248http://www.stonehenge.com/merlyn/WebTechniques/ .
68dc0745 249
250=head2 Perl on the Net: FTP and WWW Access
251
252To get the best (and possibly cheapest) performance, pick a site from
253the list below and use it to grab the complete list of mirror sites.
3fe9a6f1 254From there you can find the quickest site for you. Remember, the
68dc0745 255following list is I<not> the complete list of CPAN mirrors.
256
257 http://www.perl.com/CPAN (redirects to another mirror)
258 http://www.perl.org/CPAN
259 ftp://ftp.funet.fi/pub/languages/perl/CPAN/
260 http://www.cs.ruu.nl/pub/PERL/CPAN/
261 ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
262
46fc3d4c 263http:/www.oasis.leo.org/perl/ has, amongst other things, source to
264versions 1 through 5 of Perl.
265
68dc0745 266=head2 What mailing lists are there for perl?
267
268Most of the major modules (tk, CGI, libwww-perl) have their own
269mailing lists. Consult the documentation that came with the module for
270subscription information. The following are a list of mailing lists
271related to perl itself.
272
273If you subscribe to a mailing list, it behooves you to know how to
274unsubscribe from it. Strident pleas to the list itself to get you off
275will not be favorably received.
276
277=over 4
278
279=item MacPerl
280
281There is a mailing list for discussing Macintosh Perl. Contact
282"mac-perl-request@iis.ee.ethz.ch".
283
284Also see Matthias Neeracher's (the creator and maintainer of MacPerl)
46fc3d4c 285webpage at http://www.iis.ee.ethz.ch/~neeri/macintosh/perl.html for
68dc0745 286many links to interesting MacPerl sites, and the applications/MPW
287tools, precompiled.
288
289=item Perl5-Porters
290
291The core development team have a mailing list for discussing fixes and
292changes to the language. Send mail to
293"perl5-porters-request@perl.org" with help in the body of the message
294for information on subscribing.
295
296=item NTPerl
297
298This list is used to discuss issues involving Win32 Perl 5 (Windows NT
299and Win95). Subscribe by emailing ListManager@ActiveWare.com with the
300message body:
301
302 subscribe Perl-Win32-Users
303
304The list software, also written in perl, will automatically determine
305your address, and subscribe you automatically. To unsubscribe, email
306the following in the message body to the same address like so:
307
308 unsubscribe Perl-Win32-Users
309
310You can also check http://www.activeware.com/ and select "Mailing Lists"
311to join or leave this list.
312
313=item Perl-Packrats
314
315Discussion related to archiving of perl materials, particularly the
316Comprehensive PerlArchive Network (CPAN). Subscribe by emailing
317majordomo@cis.ufl.edu:
318
319 subscribe perl-packrats
320
321The list software, also written in perl, will automatically determine
322your address, and subscribe you automatically. To unsubscribe, simple
323prepend the same command with an "un", and mail to the same address
324like so:
325
326 unsubscribe perl-packrats
327
328=back
329
330=head2 Archives of comp.lang.perl.misc
331
332Have you tried Deja News or Alta Vista?
333
334ftp.cis.ufl.edu:/pub/perl/comp.lang.perl.*/monthly has an almost
335complete collection dating back to 12/89 (missing 08/91 through
33612/93). They are kept as one large file for each month.
337
338You'll probably want more a sophisticated query and retrieval mechanism
339than a file listing, preferably one that allows you to retrieve
340articles using a fast-access indices, keyed on at least author, date,
341subject, thread (as in "trn") and probably keywords. The best
342solution the FAQ authors know of is the MH pick command, but it is
343very slow to select on 18000 articles.
344
345If you have, or know where can be found, the missing sections, please
346let perlfaq-suggestions@perl.com know.
347
348=head2 Perl Training
349
350While some large training companies offer their own courses on Perl,
351you may prefer to contact individuals near and dear to the heart of
352Perl development. Two well-known members of the Perl development team
353who offer such things are Tom Christiansen <perl-classes@perl.com>
354and Randal Schwartz <perl-training-info@stonehenge.com>, plus their
355respective minions, who offer a variety of professional tutorials
356and seminars on Perl. These courses include large public seminars,
357private corporate training, and fly-ins to Colorado and Oregon.
358See http://www.perl.com/perl/info/training.html for more details.
359
360=head2 Where can I buy a commercial version of Perl?
361
362In a sense, Perl already I<is> commercial software: It has a licence
363that you can grab and carefully read to your manager. It is
364distributed in releases and comes in well-defined packages. There is a
365very large user community and an extensive literature. The
366comp.lang.perl.* newsgroups and several of the mailing lists provide
367free answers to your questions in near real-time. Perl has
368traditionally been supported by Larry, dozens of software designers
369and developers, and thousands of programmers, all working for free
370to create a useful thing to make life better for everyone.
371
372However, these answers may not suffice for managers who require a
373purchase order from a company whom they can sue should anything go
374wrong. Or maybe they need very serious hand-holding and contractual
375obligations. Shrink-wrapped CDs with perl on them are available from
376several sources if that will help.
377
378Or you can purchase a real support contract. Although Cygnus historically
379provided this service, they no longer sell support contracts for Perl.
380Instead, the Paul Ingram Group will be taking up the slack through The
381Perl Clinic. The following is a commercial from them:
382
383"Do you need professional support for Perl and/or Oraperl? Do you need
384a support contract with defined levels of service? Do you want to pay
385only for what you need?
386
387"The Paul Ingram Group has provided quality software development and
388support services to some of the world's largest corporations for ten
389years. We are now offering the same quality support services for Perl
390at The Perl Clinic. This service is led by Tim Bunce, an active perl
391porter since 1994 and well known as the author and maintainer of the
392DBI, DBD::Oracle, and Oraperl modules and author/co-maintainer of The
393Perl 5 Module List. We also offer Oracle users support for Perl5
394Oraperl and related modules (which Oracle is planning to ship as part
395of Oracle Web Server 3). 20% of the profit from our Perl support work
396will be donated to The Perl Institute."
397
398For more information, contact the The Perl Clinic:
399
400 Tel: +44 1483 424424
401 Fax: +44 1483 419419
402 Web: http://www.perl.co.uk/
403 Email: perl-support-info@perl.co.uk or Tim.Bunce@ig.co.uk
404
405=head2 Where do I send bug reports?
406
407If you are reporting a bug in the perl interpreter or the modules
408shipped with perl, use the perlbug program in the perl distribution or
409email your report to perlbug@perl.com.
410
46fc3d4c 411If you are posting a bug with a non-standard port (see the answer to
68dc0745 412"What platforms is Perl available for?"), a binary distribution, or a
46fc3d4c 413non-standard module (such as Tk, CGI, etc), then please see the
68dc0745 414documentation that came with it to determine the correct place to post
415bugs.
416
46fc3d4c 417Read the perlbug man page (perl5.004 or later) for more information.
68dc0745 418
419=head2 What is perl.com? perl.org? The Perl Institute?
420
421perl.org is the official vehicle for The Perl Institute. The motto of
422TPI is "helping people help Perl help people" (or something like
46fc3d4c 423that). It's a non-profit organization supporting development,
68dc0745 424documentation, and dissemination of perl. Current directors of TPI
425include Larry Wall, Tom Christiansen, and Randal Schwartz, whom you
426may have heard of somewhere else around here.
427
428The perl.com domain is Tom Christiansen's domain. He created it as a
429public service long before perl.org came about. It's the original PBS
430of the Perl world, a clearinghouse for information about all things
46fc3d4c 431Perlian, accepting no paid advertisements, glossy gifs, or (gasp!)
432java applets on its pages.
68dc0745 433
434=head2 How do I learn about object-oriented Perl programming?
435
436L<perltoot> (distributed with 5.004 or later) is a good place to start.
437Also, L<perlobj>, L<perlref>, and L<perlmod> are useful references,
438while L<perlbot> has some excellent tips and tricks.
439
440=head1 AUTHOR AND COPYRIGHT
441
442Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
443All rights reserved. See L<perlfaq> for distribution information.