X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperl.pod;h=c695fb15cd9441bde5e37d955833ba735d998a4e;hb=cf2649810f00335bd657355d81bcc9384a620135;hp=c74dd2fe87ee48c0836d83b01747fdfe189826a2;hpb=8bc4a6bb5ce85516ae3e5c2d33ad6dbc559c5ef7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perl.pod b/pod/perl.pod index c74dd2f..c695fb1 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -4,93 +4,208 @@ perl - Practical Extraction and Report Language =head1 SYNOPSIS -B S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I] ]> - S<[ B<-cw> ] [ B<-d>[:I] ] [ B<-D>[I] ]> - S<[ B<-pna> ] [ B<-F>I ] [ B<-l>[I] ] [ B<-0>[I] ]> - S<[ B<-I>I ] [ B<-m>[B<->]I ] [ B<-M>[B<->]I<'module...'> ]> - S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I] ]> - S<[ B<-i>[I] ]> S<[ B<-e> I<'command'> ] - [ B<--> ] [ I ] [ I ]...> - -For ease of access, the Perl manual has been split up into several -sections: +B S<[ B<-sTtuUWX> ]> + S<[ B<-hv> ] [ B<-V>[:I] ]> + S<[ B<-cw> ] [ B<-d>[B][:I] ] [ B<-D>[I] ]> + S<[ B<-pna> ] [ B<-F>I ] [ B<-l>[I] ] [ B<-0>[I] ]> + S<[ B<-I>I ] [ B<-m>[B<->]I ] [ B<-M>[B<->]I<'module...'> ] [ B<-f> ]> + S<[ B<-A>[I][=I] ]> + S<[ B<-C [I] >]> + S<[ B<-P> ]> + S<[ B<-S> ]> + S<[ B<-x>[I] ]> + S<[ B<-i>[I] ]> + S<[ B<-e> I<'command'> ] [ B<--> ] [ I ] [ I ]...> + +If you're new to Perl, you should start with L, which is a +general intro for beginners and provides some background to help you +navigate the rest of Perl's extensive documentation. + +For ease of access, the Perl manual has been split up into several sections. + +=head2 Overview perl Perl overview (this section) - perldelta Perl changes since previous version - perl5005delta Perl changes in version 5.005 - perl5004delta Perl changes in version 5.004 - perlfaq Perl frequently asked questions + perlintro Perl introduction for beginners perltoc Perl documentation table of contents - perldata Perl data structures - perlsyn Perl syntax - perlop Perl operators and precedence - perlre Perl regular expressions - perlrun Perl execution and options - perlfunc Perl builtin functions - perlopentut Perl open() tutorial - perlvar Perl predefined variables - perlsub Perl subroutines - perlmod Perl modules: how they work - perlmodlib Perl modules: how to write and use - perlmodinstall Perl modules: how to install from CPAN - perlform Perl formats - perlunicode Perl unicode support - perllocale Perl locale support +=head2 Tutorials perlreftut Perl references short introduction - perlref Perl references, the rest of the story perldsc Perl data structures intro perllol Perl data structures: arrays of arrays + + perlrequick Perl regular expressions quick start + perlretut Perl regular expressions tutorial + perlboot Perl OO tutorial for beginners perltoot Perl OO tutorial, part 1 - perltootc Perl OO tutorial, part 2 + perltooc Perl OO tutorial, part 2 + perlbot Perl OO tricks and examples + + perlstyle Perl style guide + + perlcheat Perl cheat sheet + perltrap Perl traps for the unwary + perldebtut Perl debugging tutorial + + perlfaq Perl frequently asked questions + perlfaq1 General Questions About Perl + perlfaq2 Obtaining and Learning about Perl + perlfaq3 Programming Tools + perlfaq4 Data Manipulation + perlfaq5 Files and Formats + perlfaq6 Regexes + perlfaq7 Perl Language Issues + perlfaq8 System Interaction + perlfaq9 Networking + +=head2 Reference Manual + + perlsyn Perl syntax + perldata Perl data structures + perlop Perl operators and precedence + perlsub Perl subroutines + perlfunc Perl built-in functions + perlopentut Perl open() tutorial + perlpacktut Perl pack() and unpack() tutorial + perlpod Perl plain old documentation + perlpodspec Perl plain old documentation format specification + perlrun Perl execution and options + perldiag Perl diagnostic messages + perllexwarn Perl warnings and their control + perldebug Perl debugging + perlvar Perl predefined variables + perlre Perl regular expressions, the rest of the story + perlreref Perl regular expressions quick reference + perlref Perl references, the rest of the story + perlform Perl formats perlobj Perl objects perltie Perl objects hidden behind simple variables - perlbot Perl OO tricks and examples + perldbmfilter Perl DBM filters + perlipc Perl interprocess communication perlfork Perl fork() information + perlnumber Perl number semantics + perlthrtut Perl threads tutorial - perllexwarn Perl warnings and their control - perlfilter Perl source filters - perldbmfilter Perl DBM filters + perlothrtut Old Perl threads tutorial - perlcompile Perl compiler suite intro - perldebug Perl debugging - perldiag Perl diagnostic messages - perlnumber Perl number semantics - perlsec Perl security - perltrap Perl traps for the unwary perlport Perl portability guide - perlstyle Perl style guide + perllocale Perl locale support + perluniintro Perl Unicode introduction + perlunicode Perl Unicode support + perlebcdic Considerations for running Perl on EBCDIC platforms - perlpod Perl plain old documentation - perlbook Perl book information + perlsec Perl security + + perlmod Perl modules: how they work + perlmodlib Perl modules: how to write and use + perlmodstyle Perl modules: how to write modules with style + perlmodinstall Perl modules: how to install from CPAN + perlnewmod Perl modules: preparing a new module for distribution + + perlutil utilities packaged with the Perl distribution + + perlcompile Perl compiler suite intro + + perlfilter Perl source filters + + perlglossary Perl Glossary + +=head2 Internals and C Language Interface perlembed Perl ways to embed perl in your C or C++ application - perlapio Perl internal IO abstraction interface - perlxs Perl XS application programming interface + perldebguts Perl debugging guts and tips perlxstut Perl XS tutorial + perlxs Perl XS application programming interface + perlclib Internal replacements for standard C library functions perlguts Perl internal functions for those doing extensions perlcall Perl calling conventions from C + perlapi Perl API listing (autogenerated) perlintern Perl internal functions (autogenerated) + perliol C API for Perl's implementation of IO in Layers + perlapio Perl internal IO abstraction interface - perltodo Perl things to do perlhack Perl hackers guide + +=head2 Miscellaneous + + perlbook Perl book information + perltodo Perl things to do + + perldoc Look up Perl documentation in Pod format + perlhist Perl history records + perldelta Perl changes since previous version + perl592delta Perl changes in version 5.9.2 + perl591delta Perl changes in version 5.9.1 + perl590delta Perl changes in version 5.9.0 + perl587delta Perl changes in version 5.8.7 + perl586delta Perl changes in version 5.8.6 + perl585delta Perl changes in version 5.8.5 + perl584delta Perl changes in version 5.8.4 + perl583delta Perl changes in version 5.8.3 + perl582delta Perl changes in version 5.8.2 + perl581delta Perl changes in version 5.8.1 + perl58delta Perl changes in version 5.8.0 + perl573delta Perl changes in version 5.7.3 + perl572delta Perl changes in version 5.7.2 + perl571delta Perl changes in version 5.7.1 + perl570delta Perl changes in version 5.7.0 + perl561delta Perl changes in version 5.6.1 + perl56delta Perl changes in version 5.6 + perl5005delta Perl changes in version 5.005 + perl5004delta Perl changes in version 5.004 + + perlartistic Perl Artistic License + perlgpl GNU General Public License + +=head2 Language-Specific + + perlcn Perl for Simplified Chinese (in EUC-CN) + perljp Perl for Japanese (in EUC-JP) + perlko Perl for Korean (in EUC-KR) + perltw Perl for Traditional Chinese (in Big5) - perlamiga Perl notes for Amiga +=head2 Platform-Specific + + perlaix Perl notes for AIX + perlamiga Perl notes for AmigaOS + perlapollo Perl notes for Apollo DomainOS + perlbeos Perl notes for BeOS + perlbs2000 Perl notes for POSIX-BC BS2000 + perlce Perl notes for WinCE perlcygwin Perl notes for Cygwin + perldgux Perl notes for DG/UX perldos Perl notes for DOS + perlepoc Perl notes for EPOC + perlfreebsd Perl notes for FreeBSD perlhpux Perl notes for HP-UX + perlhurd Perl notes for Hurd + perlirix Perl notes for Irix + perlmachten Perl notes for Power MachTen + perlmacos Perl notes for Mac OS (Classic) + perlmacosx Perl notes for Mac OS X + perlmint Perl notes for MiNT + perlmpeix Perl notes for MPE/iX + perlnetware Perl notes for NetWare + perlopenbsd Perl notes for OpenBSD perlos2 Perl notes for OS/2 perlos390 Perl notes for OS/390 + perlos400 Perl notes for OS/400 + perlplan9 Perl notes for Plan 9 + perlqnx Perl notes for QNX + perlsolaris Perl notes for Solaris + perlsymbian Perl notes for Symbian + perltru64 Perl notes for Tru64 + perluts Perl notes for UTS + perlvmesa Perl notes for VM/ESA perlvms Perl notes for VMS + perlvos Perl notes for Stratus VOS perlwin32 Perl notes for Windows -(If you're intending to read these straight through for the first time, -the suggested order will tend to reduce the number of forward references.) By default, the manpages listed above are installed in the F directory. @@ -160,58 +275,81 @@ But wait, there's more... Begun in 1993 (see L), Perl version 5 is nearly a complete rewrite that provides the following additional benefits: -=over +=over 4 + +=item * -=item * modularity and reusability using innumerable modules +modularity and reusability using innumerable modules Described in L, L, and L. -=item * embeddable and extensible +=item * + +embeddable and extensible Described in L, L, L, L, L, and L. -=item * roll-your-own magic variables (including multiple simultaneous DBM implementations) +=item * + +roll-your-own magic variables (including multiple simultaneous DBM +implementations) Described in L and L. -=item * subroutines can now be overridden, autoloaded, and prototyped +=item * + +subroutines can now be overridden, autoloaded, and prototyped Described in L. -=item * arbitrarily nested data structures and anonymous functions +=item * + +arbitrarily nested data structures and anonymous functions Described in L, L, L, and L. -=item * object-oriented programming +=item * -Described in L, L, and L. +object-oriented programming -=item * compilability into C code or Perl bytecode +Described in L, L, L, L, +and L. -Described in L and L. +=item * -=item * support for light-weight processes (threads) +support for light-weight processes (threads) -Described in L and L. +Described in L and L. -=item * support for internationalization, localization, and Unicode +=item * -Described in L and L. +support for Unicode, internationalization, and localization -=item * lexical scoping +Described in L, L and L. + +=item * + +lexical scoping Described in L. -=item * regular expression enhancements +=item * + +regular expression enhancements Described in L, with additional examples in L. -=item * enhanced debugger and interactive Perl environment, with integrated editor support +=item * + +enhanced debugger and interactive Perl environment, +with integrated editor support + +Described in L, L and L. -Described in L. +=item * -=item * POSIX 1003.1 compliant library +POSIX 1003.1 compliant library Described in L. @@ -222,147 +360,8 @@ Okay, that's I enough hype. =head1 AVAILABILITY Perl is available for most operating systems, including virtually -all Unix-like platforms. - -As of early March 2000 (the Perl release 5.6.0), the following -platforms are able to build Perl from the standard source code -distribution available at http://www.perl.com/CPAN/src/index.html - - AIX - DOS DJGPP 1) - FreeBSD - HP-UX - IRIX - Linux - MachTen - MPE/iX - NetBSD - OpenBSD - OS/2 - Rhapsody/Darwin 2) - Solaris - Tru64 UNIX 3) - UNICOS - UNICOS/mk - VMS - VOS - Windows 3.1 1) - Windows 95 1) 4) - Windows 98 1) 4) - Windows NT 1) 4) - - 1) in DOS mode either the DOS or OS/2 ports can be used - 2) new in 5.6.0: the BSD/NeXT-based UNIX of Mac OS X - 3) formerly known as Digital UNIX and before that DEC OSF/1 - 4) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++ - -The following platforms worked for the previous major release -(5.005_04 being the latest maintenance release of that, as of early -March 2000), but be did not manage to test these in time for the 5.6.0 -release of Perl. There is a very good chance that these will work -just fine with 5.6.0. - - A/UX - BeOS - BSD/OS - DG/UX - DYNIX/ptx - DomainOS - Hurd - NextSTEP - OpenSTEP - PowerMAX - QNX - SCO ODT/OSR - SunOS - SVR4 - Ultrix - -The following platform worked for the previous major release (5.005_04 -being the latest maintenance release of that, as of early March 2000). -However, standardization on UTF-8 as the internal string representation -in 5.6.0 has introduced incompatibilities in this EBCDIC platform. -Support for this platform may be enabled in a future release: - - OS390 1) - - 1) Previously known as MVS, or OpenEdition MVS. - -Strongly related to the OS390 platform by also being EBCDIC-based -mainframe platforms are the following platforms: - - BS2000 - VM/ESA - -These are also not expected to work under 5.6.0 for the same reasons -as OS390. Contact the mailing list perl-mvs@perl.org for more details. - -MacOS (Classic, pre-X) is almost 5.6.0-ready; building from the source -does work with 5.6.0, but additional MacOS specific source code is needed -for a complete port. Contact the mailing list macperl-porters@macperl.org -for more more information. - -The following platforms have been known to build Perl from source in -the past, but we haven't been able to verify their status for the -current release, either because the hardware/software platforms are -rare or because we don't have an active champion on these -platforms--or both: - - 3b1 - AmigaOS - ConvexOS - CX/UX - DC/OSx - DDE SMES - DOS EMX - Dynix - EP/IX - ESIX - FPS - GENIX - Greenhills - ISC - MachTen 68k - MiNT - MPC - NEWS-OS - Opus - Plan 9 - PowerUX - RISC/os - Stellar - SVR2 - TI1500 - TitanOS - Unisys Dynix - Unixware - -Support for the following platform is planned for a future Perl release: - - Netware - -The following platforms have their own source code distributions and -binaries available via http://www.perl.com/CPAN/ports/index.html: - - Perl release - - AS/400 5.003 - Netware 5.003_07 - Tandem Guardian 5.004 - -The following platforms have only binaries available via -http://www.perl.com/CPAN/ports/index.html: - - Perl release - - Acorn RISCOS 5.005_02 - AOS 5.002 - LynxOS 5.004_02 - -Although we do suggest that you always build your own Perl from the -source code, both for maximal configurability and for security, -in case you are in a hurry you can check the URL -http://www.perl.com/CPAN/ports/index.html for binary releases. +all Unix-like platforms. See L +for a listing. =head1 ENVIRONMENT @@ -386,12 +385,15 @@ Perl developers, please write to perl-thanks@perl.org . a2p awk to perl translator s2p sed to perl translator - http://www.perl.com/ the Perl Home Page - http://www.perl.com/CPAN the Comprehensive Perl Archive + http://www.perl.org/ the Perl homepage + http://www.perl.com/ Perl articles (O'Reilly) + http://www.cpan.org/ the Comprehensive Perl Archive + http://www.pm.org/ the Perl Mongers =head1 DIAGNOSTICS -The B<-w> switch produces some lovely diagnostics. +The C pragma (and the B<-w> switch) produces some +lovely diagnostics. See L for explanations of all Perl's diagnostics. The C pragma automatically turns Perl's normally terse warnings @@ -429,8 +431,8 @@ affected by wraparound). You may mail your bug reports (be sure to include full configuration information as output by the myconfig program in the perl source -tree, or by C) to perlbug@perl.com . If you've succeeded -in compiling perl, the perlbug script in the utils/ subdirectory +tree, or by C) to perlbug@perl.org . If you've succeeded +in compiling perl, the B script in the F subdirectory can be used to help mail in a bug report. Perl actually stands for Pathologically Eclectic Rubbish Lister, but