xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/pod/perl.pod (revision 8287:771477e4b843)
1*0Sstevel@tonic-gate=head1 NAME
2*0Sstevel@tonic-gate
3*0Sstevel@tonic-gateperl - Practical Extraction and Report Language
4*0Sstevel@tonic-gate
5*0Sstevel@tonic-gate=head1 SYNOPSIS
6*0Sstevel@tonic-gate
7*0Sstevel@tonic-gateB<perl>	S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
8*0Sstevel@tonic-gate    S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]>
9*0Sstevel@tonic-gate    S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]>
10*0Sstevel@tonic-gate    S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ]>
11*0Sstevel@tonic-gate    S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<dir>] ]>
12*0Sstevel@tonic-gate    S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ]
13*0Sstevel@tonic-gate    [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
14*0Sstevel@tonic-gate
15*0Sstevel@tonic-gateIf you're new to Perl, you should start with L<perlintro>, which is a
16*0Sstevel@tonic-gategeneral intro for beginners and provides some background to help you
17*0Sstevel@tonic-gatenavigate the rest of Perl's extensive documentation.
18*0Sstevel@tonic-gate
19*0Sstevel@tonic-gateFor ease of access, the Perl manual has been split up into several sections.
20*0Sstevel@tonic-gate
21*0Sstevel@tonic-gate=head2 Overview
22*0Sstevel@tonic-gate
23*0Sstevel@tonic-gate    perl		Perl overview (this section)
24*0Sstevel@tonic-gate    perlintro		Perl introduction for beginners
25*0Sstevel@tonic-gate    perltoc		Perl documentation table of contents
26*0Sstevel@tonic-gate
27*0Sstevel@tonic-gate=head2 Tutorials
28*0Sstevel@tonic-gate
29*0Sstevel@tonic-gate    perlreftut		Perl references short introduction
30*0Sstevel@tonic-gate    perldsc		Perl data structures intro
31*0Sstevel@tonic-gate    perllol		Perl data structures: arrays of arrays
32*0Sstevel@tonic-gate
33*0Sstevel@tonic-gate    perlrequick 	Perl regular expressions quick start
34*0Sstevel@tonic-gate    perlretut		Perl regular expressions tutorial
35*0Sstevel@tonic-gate
36*0Sstevel@tonic-gate    perlboot		Perl OO tutorial for beginners
37*0Sstevel@tonic-gate    perltoot		Perl OO tutorial, part 1
38*0Sstevel@tonic-gate    perltooc		Perl OO tutorial, part 2
39*0Sstevel@tonic-gate    perlbot		Perl OO tricks and examples
40*0Sstevel@tonic-gate
41*0Sstevel@tonic-gate    perlstyle		Perl style guide
42*0Sstevel@tonic-gate
43*0Sstevel@tonic-gate    perlcheat		Perl cheat sheet
44*0Sstevel@tonic-gate    perltrap		Perl traps for the unwary
45*0Sstevel@tonic-gate    perldebtut		Perl debugging tutorial
46*0Sstevel@tonic-gate
47*0Sstevel@tonic-gate    perlfaq		Perl frequently asked questions
48*0Sstevel@tonic-gate      perlfaq1		General Questions About Perl
49*0Sstevel@tonic-gate      perlfaq2		Obtaining and Learning about Perl
50*0Sstevel@tonic-gate      perlfaq3		Programming Tools
51*0Sstevel@tonic-gate      perlfaq4		Data Manipulation
52*0Sstevel@tonic-gate      perlfaq5		Files and Formats
53*0Sstevel@tonic-gate      perlfaq6		Regexes
54*0Sstevel@tonic-gate      perlfaq7		Perl Language Issues
55*0Sstevel@tonic-gate      perlfaq8		System Interaction
56*0Sstevel@tonic-gate      perlfaq9		Networking
57*0Sstevel@tonic-gate
58*0Sstevel@tonic-gate=head2 Reference Manual
59*0Sstevel@tonic-gate
60*0Sstevel@tonic-gate    perlsyn		Perl syntax
61*0Sstevel@tonic-gate    perldata		Perl data structures
62*0Sstevel@tonic-gate    perlop		Perl operators and precedence
63*0Sstevel@tonic-gate    perlsub		Perl subroutines
64*0Sstevel@tonic-gate    perlfunc		Perl built-in functions
65*0Sstevel@tonic-gate      perlopentut	Perl open() tutorial
66*0Sstevel@tonic-gate      perlpacktut	Perl pack() and unpack() tutorial
67*0Sstevel@tonic-gate    perlpod		Perl plain old documentation
68*0Sstevel@tonic-gate    perlpodspec 	Perl plain old documentation format specification
69*0Sstevel@tonic-gate    perlrun		Perl execution and options
70*0Sstevel@tonic-gate    perldiag		Perl diagnostic messages
71*0Sstevel@tonic-gate    perllexwarn 	Perl warnings and their control
72*0Sstevel@tonic-gate    perldebug		Perl debugging
73*0Sstevel@tonic-gate    perlvar		Perl predefined variables
74*0Sstevel@tonic-gate    perlre		Perl regular expressions, the rest of the story
75*0Sstevel@tonic-gate    perlreref		Perl regular expressions quick reference
76*0Sstevel@tonic-gate    perlref		Perl references, the rest of the story
77*0Sstevel@tonic-gate    perlform		Perl formats
78*0Sstevel@tonic-gate    perlobj		Perl objects
79*0Sstevel@tonic-gate    perltie		Perl objects hidden behind simple variables
80*0Sstevel@tonic-gate      perldbmfilter	Perl DBM filters
81*0Sstevel@tonic-gate
82*0Sstevel@tonic-gate    perlipc		Perl interprocess communication
83*0Sstevel@tonic-gate    perlfork		Perl fork() information
84*0Sstevel@tonic-gate    perlnumber		Perl number semantics
85*0Sstevel@tonic-gate
86*0Sstevel@tonic-gate    perlthrtut		Perl threads tutorial
87*0Sstevel@tonic-gate      perlothrtut	Old Perl threads tutorial
88*0Sstevel@tonic-gate
89*0Sstevel@tonic-gate    perlport		Perl portability guide
90*0Sstevel@tonic-gate    perllocale		Perl locale support
91*0Sstevel@tonic-gate    perluniintro	Perl Unicode introduction
92*0Sstevel@tonic-gate    perlunicode 	Perl Unicode support
93*0Sstevel@tonic-gate    perlebcdic		Considerations for running Perl on EBCDIC platforms
94*0Sstevel@tonic-gate
95*0Sstevel@tonic-gate    perlsec		Perl security
96*0Sstevel@tonic-gate
97*0Sstevel@tonic-gate    perlmod		Perl modules: how they work
98*0Sstevel@tonic-gate    perlmodlib		Perl modules: how to write and use
99*0Sstevel@tonic-gate    perlmodstyle	Perl modules: how to write modules with style
100*0Sstevel@tonic-gate    perlmodinstall	Perl modules: how to install from CPAN
101*0Sstevel@tonic-gate    perlnewmod		Perl modules: preparing a new module for distribution
102*0Sstevel@tonic-gate
103*0Sstevel@tonic-gate    perlutil		utilities packaged with the Perl distribution
104*0Sstevel@tonic-gate
105*0Sstevel@tonic-gate    perlcompile 	Perl compiler suite intro
106*0Sstevel@tonic-gate
107*0Sstevel@tonic-gate    perlfilter		Perl source filters
108*0Sstevel@tonic-gate
109*0Sstevel@tonic-gate=head2 Internals and C Language Interface
110*0Sstevel@tonic-gate
111*0Sstevel@tonic-gate    perlembed		Perl ways to embed perl in your C or C++ application
112*0Sstevel@tonic-gate    perldebguts 	Perl debugging guts and tips
113*0Sstevel@tonic-gate    perlxstut		Perl XS tutorial
114*0Sstevel@tonic-gate    perlxs		Perl XS application programming interface
115*0Sstevel@tonic-gate    perlclib		Internal replacements for standard C library functions
116*0Sstevel@tonic-gate    perlguts		Perl internal functions for those doing extensions
117*0Sstevel@tonic-gate    perlcall		Perl calling conventions from C
118*0Sstevel@tonic-gate
119*0Sstevel@tonic-gate    perlapi		Perl API listing (autogenerated)
120*0Sstevel@tonic-gate    perlintern		Perl internal functions (autogenerated)
121*0Sstevel@tonic-gate    perliol		C API for Perl's implementation of IO in Layers
122*0Sstevel@tonic-gate    perlapio		Perl internal IO abstraction interface
123*0Sstevel@tonic-gate
124*0Sstevel@tonic-gate    perlhack		Perl hackers guide
125*0Sstevel@tonic-gate
126*0Sstevel@tonic-gate=head2 Miscellaneous
127*0Sstevel@tonic-gate
128*0Sstevel@tonic-gate    perlbook		Perl book information
129*0Sstevel@tonic-gate    perltodo		Perl things to do
130*0Sstevel@tonic-gate
131*0Sstevel@tonic-gate    perldoc		Look up Perl documentation in Pod format
132*0Sstevel@tonic-gate
133*0Sstevel@tonic-gate    perlhist		Perl history records
134*0Sstevel@tonic-gate    perldelta		Perl changes since previous version
135*0Sstevel@tonic-gate    perl583delta	Perl changes in version 5.8.3
136*0Sstevel@tonic-gate    perl582delta	Perl changes in version 5.8.2
137*0Sstevel@tonic-gate    perl581delta	Perl changes in version 5.8.1
138*0Sstevel@tonic-gate    perl58delta 	Perl changes in version 5.8.0
139*0Sstevel@tonic-gate    perl573delta	Perl changes in version 5.7.3
140*0Sstevel@tonic-gate    perl572delta	Perl changes in version 5.7.2
141*0Sstevel@tonic-gate    perl571delta	Perl changes in version 5.7.1
142*0Sstevel@tonic-gate    perl570delta	Perl changes in version 5.7.0
143*0Sstevel@tonic-gate    perl561delta	Perl changes in version 5.6.1
144*0Sstevel@tonic-gate    perl56delta 	Perl changes in version 5.6
145*0Sstevel@tonic-gate    perl5005delta	Perl changes in version 5.005
146*0Sstevel@tonic-gate    perl5004delta	Perl changes in version 5.004
147*0Sstevel@tonic-gate
148*0Sstevel@tonic-gate    perlartistic	Perl Artistic License
149*0Sstevel@tonic-gate    perlgpl		GNU General Public License
150*0Sstevel@tonic-gate
151*0Sstevel@tonic-gate=head2 Language-Specific
152*0Sstevel@tonic-gate
153*0Sstevel@tonic-gate    perlcn		Perl for Simplified Chinese (in EUC-CN)
154*0Sstevel@tonic-gate    perljp		Perl for Japanese (in EUC-JP)
155*0Sstevel@tonic-gate    perlko		Perl for Korean (in EUC-KR)
156*0Sstevel@tonic-gate    perltw		Perl for Traditional Chinese (in Big5)
157*0Sstevel@tonic-gate
158*0Sstevel@tonic-gate=head2 Platform-Specific
159*0Sstevel@tonic-gate
160*0Sstevel@tonic-gate    perlsolaris 	Perl notes for Solaris
161*0Sstevel@tonic-gate
162*0Sstevel@tonic-gate
163*0Sstevel@tonic-gateThe manpages listed above are installed in the F</usr/perl5/man/> directory.
164*0Sstevel@tonic-gate
165*0Sstevel@tonic-gateExtensive additional documentation for Perl modules is available.  This
166*0Sstevel@tonic-gateadditional documentation is in the F</usr/perl5/man> directory.
167*0Sstevel@tonic-gateSome of this additional documentation is distributed standard with Perl,
168*0Sstevel@tonic-gatebut you'll also find documentation for any customer-installed third-party
169*0Sstevel@tonic-gatemodules there.
170*0Sstevel@tonic-gate
171*0Sstevel@tonic-gateYou can view Perl's documentation with man(1) by including /usr/perl5/man
172*0Sstevel@tonic-gatein the MANPATH environment variable.  Notice that running catman(1M) on the
173*0Sstevel@tonic-gatePerl manual pages is not supported.  For other Solaris-specific details,
174*0Sstevel@tonic-gatesee the NOTES section below.
175*0Sstevel@tonic-gate
176*0Sstevel@tonic-gateYou can also use the supplied F</usr/perl5/bin/perldoc> script to view
177*0Sstevel@tonic-gatePerl information.
178*0Sstevel@tonic-gate
179*0Sstevel@tonic-gateIf something strange has gone wrong with your program and you're not
180*0Sstevel@tonic-gatesure where you should look for help, try the B<-w> switch first.  It
181*0Sstevel@tonic-gatewill often point out exactly where the trouble is.
182*0Sstevel@tonic-gate
183*0Sstevel@tonic-gate=head1 DESCRIPTION
184*0Sstevel@tonic-gate
185*0Sstevel@tonic-gatePerl is a language optimized for scanning arbitrary
186*0Sstevel@tonic-gatetext files, extracting information from those text files, and printing
187*0Sstevel@tonic-gatereports based on that information.  It's also a good language for many
188*0Sstevel@tonic-gatesystem management tasks.  The language is intended to be practical
189*0Sstevel@tonic-gate(easy to use, efficient, complete) rather than beautiful (tiny,
190*0Sstevel@tonic-gateelegant, minimal).
191*0Sstevel@tonic-gate
192*0Sstevel@tonic-gatePerl combines (in the author's opinion, anyway) some of the best
193*0Sstevel@tonic-gatefeatures of C, B<sed>, B<awk>, and B<sh>, so people familiar with
194*0Sstevel@tonic-gatethose languages should have little difficulty with it.  (Language
195*0Sstevel@tonic-gatehistorians will also note some vestiges of B<csh>, Pascal, and even
196*0Sstevel@tonic-gateBASIC-PLUS.)  Expression syntax corresponds closely to C
197*0Sstevel@tonic-gateexpression syntax.  Unlike most Unix utilities, Perl does not
198*0Sstevel@tonic-gatearbitrarily limit the size of your data--if you've got the memory,
199*0Sstevel@tonic-gatePerl can slurp in your whole file as a single string.  Recursion is of
200*0Sstevel@tonic-gateunlimited depth.  And the tables used by hashes (sometimes called
201*0Sstevel@tonic-gate"associative arrays") grow as necessary to prevent degraded
202*0Sstevel@tonic-gateperformance.  Perl can use sophisticated pattern matching techniques to
203*0Sstevel@tonic-gatescan large amounts of data quickly.  Although optimized for
204*0Sstevel@tonic-gatescanning text, Perl can also deal with binary data, and can make dbm
205*0Sstevel@tonic-gatefiles look like hashes.  Setuid Perl scripts are safer than C programs
206*0Sstevel@tonic-gatethrough a dataflow tracing mechanism that prevents many stupid
207*0Sstevel@tonic-gatesecurity holes.
208*0Sstevel@tonic-gate
209*0Sstevel@tonic-gateIf you have a problem that would ordinarily use B<sed> or B<awk> or
210*0Sstevel@tonic-gateB<sh>, but it exceeds their capabilities or must run a little faster,
211*0Sstevel@tonic-gateand you don't want to write the silly thing in C, then Perl may be for
212*0Sstevel@tonic-gateyou.  There are also translators to turn your B<sed> and B<awk>
213*0Sstevel@tonic-gatescripts into Perl scripts.
214*0Sstevel@tonic-gate
215*0Sstevel@tonic-gateBut wait, there's more...
216*0Sstevel@tonic-gate
217*0Sstevel@tonic-gateBegun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
218*0Sstevel@tonic-gaterewrite that provides the following additional benefits:
219*0Sstevel@tonic-gate
220*0Sstevel@tonic-gate=over 4
221*0Sstevel@tonic-gate
222*0Sstevel@tonic-gate=item *
223*0Sstevel@tonic-gate
224*0Sstevel@tonic-gatemodularity and reusability using innumerable modules
225*0Sstevel@tonic-gate
226*0Sstevel@tonic-gateDescribed in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
227*0Sstevel@tonic-gate
228*0Sstevel@tonic-gate=item *
229*0Sstevel@tonic-gate
230*0Sstevel@tonic-gateembeddable and extensible
231*0Sstevel@tonic-gate
232*0Sstevel@tonic-gateDescribed in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
233*0Sstevel@tonic-gateL<perlguts>, and L<xsubpp>.
234*0Sstevel@tonic-gate
235*0Sstevel@tonic-gate=item *
236*0Sstevel@tonic-gate
237*0Sstevel@tonic-gateroll-your-own magic variables (including multiple simultaneous DBM
238*0Sstevel@tonic-gateimplementations)
239*0Sstevel@tonic-gate
240*0Sstevel@tonic-gateDescribed in L<perltie> and L<AnyDBM_File>.
241*0Sstevel@tonic-gate
242*0Sstevel@tonic-gate=item *
243*0Sstevel@tonic-gate
244*0Sstevel@tonic-gatesubroutines can now be overridden, autoloaded, and prototyped
245*0Sstevel@tonic-gate
246*0Sstevel@tonic-gateDescribed in L<perlsub>.
247*0Sstevel@tonic-gate
248*0Sstevel@tonic-gate=item *
249*0Sstevel@tonic-gate
250*0Sstevel@tonic-gatearbitrarily nested data structures and anonymous functions
251*0Sstevel@tonic-gate
252*0Sstevel@tonic-gateDescribed in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
253*0Sstevel@tonic-gate
254*0Sstevel@tonic-gate=item *
255*0Sstevel@tonic-gate
256*0Sstevel@tonic-gateobject-oriented programming
257*0Sstevel@tonic-gate
258*0Sstevel@tonic-gateDescribed in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
259*0Sstevel@tonic-gateand L<perlbot>.
260*0Sstevel@tonic-gate
261*0Sstevel@tonic-gate=item *
262*0Sstevel@tonic-gate
263*0Sstevel@tonic-gatesupport for light-weight processes (threads)
264*0Sstevel@tonic-gate
265*0Sstevel@tonic-gateDescribed in L<perlthrtut> and L<threads>.
266*0Sstevel@tonic-gate
267*0Sstevel@tonic-gate=item *
268*0Sstevel@tonic-gate
269*0Sstevel@tonic-gatesupport for Unicode, internationalization, and localization
270*0Sstevel@tonic-gate
271*0Sstevel@tonic-gateDescribed in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
272*0Sstevel@tonic-gate
273*0Sstevel@tonic-gate=item *
274*0Sstevel@tonic-gate
275*0Sstevel@tonic-gatelexical scoping
276*0Sstevel@tonic-gate
277*0Sstevel@tonic-gateDescribed in L<perlsub>.
278*0Sstevel@tonic-gate
279*0Sstevel@tonic-gate=item *
280*0Sstevel@tonic-gate
281*0Sstevel@tonic-gateregular expression enhancements
282*0Sstevel@tonic-gate
283*0Sstevel@tonic-gateDescribed in L<perlre>, with additional examples in L<perlop>.
284*0Sstevel@tonic-gate
285*0Sstevel@tonic-gate=item *
286*0Sstevel@tonic-gate
287*0Sstevel@tonic-gateenhanced debugger and interactive Perl environment,
288*0Sstevel@tonic-gatewith integrated editor support
289*0Sstevel@tonic-gate
290*0Sstevel@tonic-gateDescribed in L<perldebtut>, L<perldebug> and L<perldebguts>.
291*0Sstevel@tonic-gate
292*0Sstevel@tonic-gate=item *
293*0Sstevel@tonic-gate
294*0Sstevel@tonic-gatePOSIX 1003.1 compliant library
295*0Sstevel@tonic-gate
296*0Sstevel@tonic-gateDescribed in L<POSIX>.
297*0Sstevel@tonic-gate
298*0Sstevel@tonic-gate=back
299*0Sstevel@tonic-gate
300*0Sstevel@tonic-gateOkay, that's I<definitely> enough hype.
301*0Sstevel@tonic-gate
302*0Sstevel@tonic-gate=head1 AVAILABILITY
303*0Sstevel@tonic-gate
304*0Sstevel@tonic-gatePerl is available for most operating systems, including virtually
305*0Sstevel@tonic-gateall Unix-like platforms.  See L<perlport/"Supported Platforms">
306*0Sstevel@tonic-gatefor a listing.
307*0Sstevel@tonic-gate
308*0Sstevel@tonic-gate=head1 ENVIRONMENT
309*0Sstevel@tonic-gate
310*0Sstevel@tonic-gateThe Perl shipped with Solaris is installed under F</usr/perl5> rather
311*0Sstevel@tonic-gatethan the default F</usr/local> location. This is so that it can coexist
312*0Sstevel@tonic-gatewith a customer-installed Perl in the default F</usr/local> location.
313*0Sstevel@tonic-gate
314*0Sstevel@tonic-gateAny additional modules that you choose to install will be placed in the
315*0Sstevel@tonic-gateF</usr/perl5/site_perl/5.8.4> directory. The F</usr/perl5/vendor_perl>
316*0Sstevel@tonic-gatedirectory is reserved for SMI-provided modules.
317*0Sstevel@tonic-gate
318*0Sstevel@tonic-gateNotice that the Perl utility scripts such as perldoc and perlbug are in
319*0Sstevel@tonic-gatethe F</usr/perl5/bin> directory, so if you wish to use them you need to
320*0Sstevel@tonic-gateinclude F</usr/perl5/bin> in your PATH environment variable.
321*0Sstevel@tonic-gate
322*0Sstevel@tonic-gateSee also the L<perlrun> mapage.
323*0Sstevel@tonic-gate
324*0Sstevel@tonic-gate=head1 AUTHOR
325*0Sstevel@tonic-gate
326*0Sstevel@tonic-gateLarry Wall <larry@wall.org>, with the help of oodles of other folks.
327*0Sstevel@tonic-gate
328*0Sstevel@tonic-gateIf your Perl success stories and testimonials may be of help to others
329*0Sstevel@tonic-gatewho wish to advocate the use of Perl in their applications,
330*0Sstevel@tonic-gateor if you wish to simply express your gratitude to Larry and the
331*0Sstevel@tonic-gatePerl developers, please write to perl-thanks@perl.org .
332*0Sstevel@tonic-gate
333*0Sstevel@tonic-gate=head1 FILES
334*0Sstevel@tonic-gate
335*0Sstevel@tonic-gate "@INC"			locations of perl libraries
336*0Sstevel@tonic-gate
337*0Sstevel@tonic-gate=head1 ATTRIBUTES
338*0Sstevel@tonic-gate
339*0Sstevel@tonic-gateSee attributes(5) for descriptions of the  following  attributes:
340*0Sstevel@tonic-gate
341*0Sstevel@tonic-gate     ____________________________________________________________
342*0Sstevel@tonic-gate    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
343*0Sstevel@tonic-gate    |_____________________________|_____________________________|
344*0Sstevel@tonic-gate    | Availability                | SUNWperl583core             |
345*0Sstevel@tonic-gate    |                             | SUNWperl583usr              |
346*0Sstevel@tonic-gate    |                             | SUNWperl583man              |
347*0Sstevel@tonic-gate    |_____________________________|_____________________________|
348*0Sstevel@tonic-gate    | Interface Stability         |                             |
349*0Sstevel@tonic-gate    |_____________________________|_____________________________|
350*0Sstevel@tonic-gate    |   o Script interface        | Evolving                    |
351*0Sstevel@tonic-gate    |_____________________________|_____________________________|
352*0Sstevel@tonic-gate    |   o XSUB interface          | Evolving                    |
353*0Sstevel@tonic-gate    |_____________________________|_____________________________|
354*0Sstevel@tonic-gate    |   o Binary interface        | Unstable                    |
355*0Sstevel@tonic-gate    |_____________________________|_____________________________|
356*0Sstevel@tonic-gate    |   o Directory layout        | Evolving                    |
357*0Sstevel@tonic-gate    |_____________________________|_____________________________|
358*0Sstevel@tonic-gate
359*0Sstevel@tonic-gate
360*0Sstevel@tonic-gate=head1 SEE ALSO
361*0Sstevel@tonic-gate
362*0Sstevel@tonic-gate perlsolaris(1)         Perl version 5 on Solaris systems
363*0Sstevel@tonic-gate perlgcc(1)             Compile perl modules using gcc
364*0Sstevel@tonic-gate
365*0Sstevel@tonic-gate a2p                    awk to perl translator
366*0Sstevel@tonic-gate s2p	                sed to perl translator
367*0Sstevel@tonic-gate
368*0Sstevel@tonic-gate http://www.perl.com/	the Perl Home Page
369*0Sstevel@tonic-gate http://www.cpan.org/   the Comprehensive Perl Archive
370*0Sstevel@tonic-gate http://www.perl.org/   Perl Mongers (Perl user groups)
371*0Sstevel@tonic-gate
372*0Sstevel@tonic-gate=head1 DIAGNOSTICS
373*0Sstevel@tonic-gate
374*0Sstevel@tonic-gateThe C<use warnings> pragma (and the B<-w> switch) produces some
375*0Sstevel@tonic-gatelovely diagnostics.
376*0Sstevel@tonic-gate
377*0Sstevel@tonic-gateSee L<perldiag> for explanations of all Perl's diagnostics.  The C<use
378*0Sstevel@tonic-gatediagnostics> pragma automatically turns Perl's normally terse warnings
379*0Sstevel@tonic-gateand errors into these longer forms.
380*0Sstevel@tonic-gate
381*0Sstevel@tonic-gateCompilation errors will tell you the line number of the error, with an
382*0Sstevel@tonic-gateindication of the next token or token type that was to be examined.
383*0Sstevel@tonic-gate(In a script passed to Perl via B<-e> switches, each
384*0Sstevel@tonic-gateB<-e> is counted as one line.)
385*0Sstevel@tonic-gate
386*0Sstevel@tonic-gateSetuid scripts have additional constraints that can produce error
387*0Sstevel@tonic-gatemessages such as "Insecure dependency".  See L<perlsec>.
388*0Sstevel@tonic-gate
389*0Sstevel@tonic-gateDid we mention that you should definitely consider using the B<-w>
390*0Sstevel@tonic-gateswitch?
391*0Sstevel@tonic-gate
392*0Sstevel@tonic-gate=head1 NOTES
393*0Sstevel@tonic-gate
394*0Sstevel@tonic-gatePerl 5.8.4 has been built to be largefile-aware and  to  use 64-bit integers,
395*0Sstevel@tonic-gatealthough the interpreter itself is a 32-bit application (LP32).  To view
396*0Sstevel@tonic-gatedetailed configuration information, use perl -V and perlbug -dv.
397*0Sstevel@tonic-gate
398*0Sstevel@tonic-gateIf you wish to build and install add-on modules from CPAN using gcc, you can do
399*0Sstevel@tonic-gateso using the /usr/perl5/5.8.4/bin/perlgcc script - see C<perlgcc(1)> for
400*0Sstevel@tonic-gatedetails.
401*0Sstevel@tonic-gate
402*0Sstevel@tonic-gateIf you wish to build and install your own version of Perl, you should NOT
403*0Sstevel@tonic-gateremove the 5.8.4 version of perl under /usr/perl5, as it is required by
404*0Sstevel@tonic-gateseveral system utilities.  The Perl package names are as follows:
405*0Sstevel@tonic-gate
406*0Sstevel@tonic-gate     SUNWperl583core    Perl 5.8.4 (Core files)
407*0Sstevel@tonic-gate     SUNWperl583usr     Perl 5.8.4 (Non-core files)
408*0Sstevel@tonic-gate     SUNWperl583man     Perl 5.8.4 (Manual pages)
409*0Sstevel@tonic-gate
410*0Sstevel@tonic-gateThe Perl motto is "There's more than one way to do it."  Divining
411*0Sstevel@tonic-gatehow many more is left as an exercise to the reader.
412*0Sstevel@tonic-gate
413*0Sstevel@tonic-gateThe three principal virtues of a programmer are Laziness,
414*0Sstevel@tonic-gateImpatience, and Hubris.  See the Camel Book for why.
415*0Sstevel@tonic-gate
416*0Sstevel@tonic-gate=head1 BUGS
417*0Sstevel@tonic-gate
418*0Sstevel@tonic-gateThe B<-w> switch is not mandatory.
419*0Sstevel@tonic-gate
420*0Sstevel@tonic-gatePerl is at the mercy of your machine's definitions of various
421*0Sstevel@tonic-gateoperations such as type casting, atof(), and floating-point
422*0Sstevel@tonic-gateoutput with sprintf().
423*0Sstevel@tonic-gate
424*0Sstevel@tonic-gateIf your stdio requires a seek or eof between reads and writes on a
425*0Sstevel@tonic-gateparticular stream, so does Perl.  (This doesn't apply to sysread()
426*0Sstevel@tonic-gateand syswrite().)
427*0Sstevel@tonic-gate
428*0Sstevel@tonic-gateWhile none of the built-in data types have any arbitrary size limits
429*0Sstevel@tonic-gate(apart from memory size), there are still a few arbitrary limits:  a
430*0Sstevel@tonic-gategiven variable name may not be longer than 251 characters.  Line numbers
431*0Sstevel@tonic-gatedisplayed by diagnostics are internally stored as short integers,
432*0Sstevel@tonic-gateso they are limited to a maximum of 65535 (higher numbers usually being
433*0Sstevel@tonic-gateaffected by wraparound).
434*0Sstevel@tonic-gate
435*0Sstevel@tonic-gateYou may mail your bug reports (be sure to include full configuration
436*0Sstevel@tonic-gateinformation as output by the myconfig program in the perl source
437*0Sstevel@tonic-gatetree, or by C<perl -V>) to perlbug@perl.org .  If you've succeeded
438*0Sstevel@tonic-gatein compiling perl, the B<perlbug> script in the F<utils/> subdirectory
439*0Sstevel@tonic-gatecan be used to help mail in a bug report.
440*0Sstevel@tonic-gate
441*0Sstevel@tonic-gatePerl actually stands for Pathologically Eclectic Rubbish Lister, but
442*0Sstevel@tonic-gatedon't tell anyone I said that.
443*0Sstevel@tonic-gate
444