ExtUtils/Miniperl.pm not built on Win32
[p5sagit/p5-mst-13.2.git] / pod / perlfaq2.pod
CommitLineData
68dc0745 1=head1 NAME
2
3fe9a6f1 3perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.15 $, $Date: 1997/03/25 18:15:48 $)
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
54310121 65the hardcoded @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.
54310121 79It describes in detail how to cope with most idiosyncrasies 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
54310121 87source code, nonnative 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
54310121 194If you're already a hardcore 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
263=head2 What mailing lists are there for perl?
264
265Most of the major modules (tk, CGI, libwww-perl) have their own
266mailing lists. Consult the documentation that came with the module for
267subscription information. The following are a list of mailing lists
268related to perl itself.
269
270If you subscribe to a mailing list, it behooves you to know how to
271unsubscribe from it. Strident pleas to the list itself to get you off
272will not be favorably received.
273
274=over 4
275
276=item MacPerl
277
278There is a mailing list for discussing Macintosh Perl. Contact
279"mac-perl-request@iis.ee.ethz.ch".
280
281Also see Matthias Neeracher's (the creator and maintainer of MacPerl)
54310121 282web page at http://www.iis.ee.ethz.ch/~neeri/macintosh/perl.html for
68dc0745 283many links to interesting MacPerl sites, and the applications/MPW
284tools, precompiled.
285
286=item Perl5-Porters
287
288The core development team have a mailing list for discussing fixes and
289changes to the language. Send mail to
290"perl5-porters-request@perl.org" with help in the body of the message
291for information on subscribing.
292
293=item NTPerl
294
295This list is used to discuss issues involving Win32 Perl 5 (Windows NT
296and Win95). Subscribe by emailing ListManager@ActiveWare.com with the
297message body:
298
299 subscribe Perl-Win32-Users
300
301The list software, also written in perl, will automatically determine
302your address, and subscribe you automatically. To unsubscribe, email
303the following in the message body to the same address like so:
304
305 unsubscribe Perl-Win32-Users
306
307You can also check http://www.activeware.com/ and select "Mailing Lists"
308to join or leave this list.
309
310=item Perl-Packrats
311
312Discussion related to archiving of perl materials, particularly the
313Comprehensive PerlArchive Network (CPAN). Subscribe by emailing
314majordomo@cis.ufl.edu:
315
316 subscribe perl-packrats
317
318The list software, also written in perl, will automatically determine
319your address, and subscribe you automatically. To unsubscribe, simple
320prepend the same command with an "un", and mail to the same address
321like so:
322
323 unsubscribe perl-packrats
324
325=back
326
327=head2 Archives of comp.lang.perl.misc
328
329Have you tried Deja News or Alta Vista?
330
331ftp.cis.ufl.edu:/pub/perl/comp.lang.perl.*/monthly has an almost
332complete collection dating back to 12/89 (missing 08/91 through
33312/93). They are kept as one large file for each month.
334
335You'll probably want more a sophisticated query and retrieval mechanism
336than a file listing, preferably one that allows you to retrieve
337articles using a fast-access indices, keyed on at least author, date,
338subject, thread (as in "trn") and probably keywords. The best
339solution the FAQ authors know of is the MH pick command, but it is
340very slow to select on 18000 articles.
341
342If you have, or know where can be found, the missing sections, please
343let perlfaq-suggestions@perl.com know.
344
345=head2 Perl Training
346
347While some large training companies offer their own courses on Perl,
348you may prefer to contact individuals near and dear to the heart of
349Perl development. Two well-known members of the Perl development team
350who offer such things are Tom Christiansen <perl-classes@perl.com>
351and Randal Schwartz <perl-training-info@stonehenge.com>, plus their
352respective minions, who offer a variety of professional tutorials
353and seminars on Perl. These courses include large public seminars,
354private corporate training, and fly-ins to Colorado and Oregon.
355See http://www.perl.com/perl/info/training.html for more details.
356
357=head2 Where can I buy a commercial version of Perl?
358
359In a sense, Perl already I<is> commercial software: It has a licence
360that you can grab and carefully read to your manager. It is
361distributed in releases and comes in well-defined packages. There is a
362very large user community and an extensive literature. The
363comp.lang.perl.* newsgroups and several of the mailing lists provide
364free answers to your questions in near real-time. Perl has
365traditionally been supported by Larry, dozens of software designers
366and developers, and thousands of programmers, all working for free
367to create a useful thing to make life better for everyone.
368
369However, these answers may not suffice for managers who require a
370purchase order from a company whom they can sue should anything go
371wrong. Or maybe they need very serious hand-holding and contractual
372obligations. Shrink-wrapped CDs with perl on them are available from
373several sources if that will help.
374
375Or you can purchase a real support contract. Although Cygnus historically
376provided this service, they no longer sell support contracts for Perl.
377Instead, the Paul Ingram Group will be taking up the slack through The
378Perl Clinic. The following is a commercial from them:
379
380"Do you need professional support for Perl and/or Oraperl? Do you need
381a support contract with defined levels of service? Do you want to pay
382only for what you need?
383
384"The Paul Ingram Group has provided quality software development and
385support services to some of the world's largest corporations for ten
386years. We are now offering the same quality support services for Perl
387at The Perl Clinic. This service is led by Tim Bunce, an active perl
388porter since 1994 and well known as the author and maintainer of the
389DBI, DBD::Oracle, and Oraperl modules and author/co-maintainer of The
390Perl 5 Module List. We also offer Oracle users support for Perl5
391Oraperl and related modules (which Oracle is planning to ship as part
392of Oracle Web Server 3). 20% of the profit from our Perl support work
393will be donated to The Perl Institute."
394
395For more information, contact the The Perl Clinic:
396
397 Tel: +44 1483 424424
398 Fax: +44 1483 419419
399 Web: http://www.perl.co.uk/
400 Email: perl-support-info@perl.co.uk or Tim.Bunce@ig.co.uk
401
402=head2 Where do I send bug reports?
403
404If you are reporting a bug in the perl interpreter or the modules
405shipped with perl, use the perlbug program in the perl distribution or
406email your report to perlbug@perl.com.
407
54310121 408If you are posting a bug with a nonstandard port (see the answer to
68dc0745 409"What platforms is Perl available for?"), a binary distribution, or a
54310121 410nonstandard module (such as Tk, CGI, etc), then please see the
68dc0745 411documentation that came with it to determine the correct place to post
412bugs.
413
54310121 414Read the perlbug manpage (perl5.004 or later) for more information.
68dc0745 415
416=head2 What is perl.com? perl.org? The Perl Institute?
417
418perl.org is the official vehicle for The Perl Institute. The motto of
419TPI is "helping people help Perl help people" (or something like
54310121 420that). It's a nonprofit organization supporting development,
68dc0745 421documentation, and dissemination of perl. Current directors of TPI
422include Larry Wall, Tom Christiansen, and Randal Schwartz, whom you
423may have heard of somewhere else around here.
424
425The perl.com domain is Tom Christiansen's domain. He created it as a
426public service long before perl.org came about. It's the original PBS
427of the Perl world, a clearinghouse for information about all things
54310121 428Perlian, accepting no paid advertisements, glossy GIFs, or (gasp!)
429Java applets on its pages.
68dc0745 430
431=head2 How do I learn about object-oriented Perl programming?
432
433L<perltoot> (distributed with 5.004 or later) is a good place to start.
434Also, L<perlobj>, L<perlref>, and L<perlmod> are useful references,
435while L<perlbot> has some excellent tips and tricks.
436
437=head1 AUTHOR AND COPYRIGHT
438
439Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
440All rights reserved. See L<perlfaq> for distribution information.