home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 March / PCWorld_2003-03_cd.bin / Software / Topware / activeperl / ActivePerl / Perl / lib / Pod / perl.pod < prev    next >
Encoding:
Text File  |  2002-10-22  |  13.8 KB  |  418 lines

  1. =head1 NAME
  2.  
  3. perl - Practical Extraction and Report Language
  4.  
  5. =head1 SYNOPSIS
  6.  
  7. B<perl>    S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
  8.     S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]>
  9.     S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]>
  10.     S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ]>
  11.     S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<dir>] ]>
  12.     S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 
  13.     [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
  14.  
  15. If you're new to Perl, you should start with L<perlintro>, which is a 
  16. general intro for beginners and provides some background to help you
  17. navigate the rest of Perl's extensive documentation.
  18.  
  19. For ease of access, the Perl manual has been split up into several sections.
  20.  
  21. =head2 Overview
  22.  
  23.     perl        Perl overview (this section)
  24.     perlintro        Perl introduction for beginners
  25.     perltoc        Perl documentation table of contents
  26.  
  27. =head2 Tutorials
  28.  
  29.     perlreftut        Perl references short introduction
  30.     perldsc        Perl data structures intro
  31.     perllol        Perl data structures: arrays of arrays
  32.  
  33.     perlrequick        Perl regular expressions quick start
  34.     perlretut        Perl regular expressions tutorial
  35.  
  36.     perlboot        Perl OO tutorial for beginners
  37.     perltoot        Perl OO tutorial, part 1
  38.     perltooc        Perl OO tutorial, part 2
  39.     perlbot        Perl OO tricks and examples
  40.  
  41.     perlstyle        Perl style guide
  42.  
  43.     perltrap        Perl traps for the unwary
  44.     perldebtut        Perl debugging tutorial
  45.  
  46.     perlfaq        Perl frequently asked questions
  47.       perlfaq1        General Questions About Perl
  48.       perlfaq2        Obtaining and Learning about Perl
  49.       perlfaq3        Programming Tools
  50.       perlfaq4        Data Manipulation
  51.       perlfaq5        Files and Formats
  52.       perlfaq6        Regexes
  53.       perlfaq7        Perl Language Issues
  54.       perlfaq8        System Interaction
  55.       perlfaq9        Networking
  56.  
  57. =head2 Reference Manual
  58.  
  59.     perlsyn        Perl syntax
  60.     perldata        Perl data structures
  61.     perlop        Perl operators and precedence
  62.     perlsub        Perl subroutines
  63.     perlfunc        Perl built-in functions
  64.       perlopentut    Perl open() tutorial
  65.       perlpacktut       Perl pack() and unpack() tutorial
  66.     perlpod        Perl plain old documentation
  67.     perlpodspec         Perl plain old documentation format specification
  68.     perlrun        Perl execution and options
  69.     perldiag        Perl diagnostic messages
  70.     perllexwarn        Perl warnings and their control
  71.     perldebug        Perl debugging
  72.     perlvar        Perl predefined variables
  73.     perlre        Perl regular expressions, the rest of the story
  74.     perlref        Perl references, the rest of the story
  75.     perlform        Perl formats
  76.     perlobj        Perl objects
  77.     perltie        Perl objects hidden behind simple variables
  78.       perldbmfilter    Perl DBM filters
  79.  
  80.     perlipc        Perl interprocess communication
  81.     perlfork        Perl fork() information
  82.     perlnumber        Perl number semantics
  83.  
  84.     perlthrtut        Perl threads tutorial
  85.       perlothrtut      Old Perl threads tutorial
  86.  
  87.     perlport        Perl portability guide
  88.     perllocale        Perl locale support
  89.     perluniintro    Perl Unicode introduction
  90.     perlunicode        Perl Unicode support
  91.     perlebcdic        Considerations for running Perl on EBCDIC platforms
  92.  
  93.     perlsec        Perl security
  94.  
  95.     perlmod        Perl modules: how they work
  96.     perlmodlib        Perl modules: how to write and use
  97.     perlmodstyle    Perl modules: how to write modules with style
  98.     perlmodinstall    Perl modules: how to install from CPAN
  99.     perlnewmod        Perl modules: preparing a new module for distribution
  100.  
  101.     perlutil        utilities packaged with the Perl distribution
  102.  
  103.     perlcompile        Perl compiler suite intro
  104.  
  105.     perlfilter        Perl source filters
  106.  
  107. =head2 Internals and C Language Interface
  108.  
  109.     perlembed        Perl ways to embed perl in your C or C++ application
  110.     perldebguts        Perl debugging guts and tips
  111.     perlxstut        Perl XS tutorial
  112.     perlxs        Perl XS application programming interface
  113.     perlclib        Internal replacements for standard C library functions
  114.     perlguts        Perl internal functions for those doing extensions
  115.     perlcall        Perl calling conventions from C
  116.  
  117.     perlapi        Perl API listing (autogenerated)
  118.     perlintern        Perl internal functions (autogenerated)
  119.     perliol        C API for Perl's implementation of IO in Layers
  120.     perlapio        Perl internal IO abstraction interface
  121.  
  122.     perlhack        Perl hackers guide
  123.  
  124. =head2 Miscellaneous
  125.  
  126.     perlbook        Perl book information
  127.     perltodo        Perl things to do
  128.  
  129.     perlhist        Perl history records
  130.     perldelta        Perl changes since previous version
  131.     perl572delta    Perl changes in version 5.7.2
  132.     perl571delta    Perl changes in version 5.7.1
  133.     perl570delta    Perl changes in version 5.7.0
  134.     perl561delta    Perl changes in version 5.6.1
  135.     perl56delta        Perl changes in version 5.6
  136.     perl5005delta    Perl changes in version 5.005
  137.     perl5004delta    Perl changes in version 5.004
  138.  
  139. =head2 Language-Specific
  140.  
  141.     perlcn        Perl for Simplified Chinese (in EUC-CN)
  142.     perljp        Perl for Japanese (in EUC-JP)
  143.     perlko        Perl for Korean (in EUC-KR)
  144.     perltw        Perl for Traditional Chinese (in Big5)
  145.  
  146. =head2 Platform-Specific
  147.  
  148.     perlaix        Perl notes for AIX
  149.     perlamiga        Perl notes for AmigaOS
  150.     perlapollo        Perl notes for Apollo DomainOS
  151.     perlbeos        Perl notes for BeOS
  152.     perlbs2000        Perl notes for POSIX-BC BS2000
  153.     perlce        Perl notes for WinCE
  154.     perlcygwin        Perl notes for Cygwin
  155.     perldgux        Perl notes for DG/UX
  156.     perldos        Perl notes for DOS
  157.     perlepoc        Perl notes for EPOC
  158.     perlfreebsd        Perl notes for FreeBSD
  159.     perlhpux        Perl notes for HP-UX
  160.     perlhurd        Perl notes for Hurd
  161.     perlirix        Perl notes for Irix
  162.     perlmachten        Perl notes for Power MachTen
  163.     perlmacos        Perl notes for Mac OS (Classic)
  164.     perlmint        Perl notes for MiNT
  165.     perlmpeix        Perl notes for MPE/iX
  166.     perlnetware        Perl notes for NetWare
  167.     perlos2        Perl notes for OS/2
  168.     perlos390        Perl notes for OS/390
  169.     perlplan9        Perl notes for Plan 9
  170.     perlqnx        Perl notes for QNX
  171.     perlsolaris     Perl notes for Solaris
  172.     perltru64        Perl notes for Tru64
  173.     perluts             Perl notes for UTS
  174.     perlvmesa        Perl notes for VM/ESA
  175.     perlvms        Perl notes for VMS
  176.     perlvos        Perl notes for Stratus VOS
  177.     perlwin32        Perl notes for Windows
  178.  
  179.  
  180. By default, the manpages listed above are installed in the 
  181. F</usr/local/man/> directory.  
  182.  
  183. Extensive additional documentation for Perl modules is available.  The
  184. default configuration for perl will place this additional documentation
  185. in the F</usr/local/lib/perl5/man> directory (or else in the F<man>
  186. subdirectory of the Perl library directory).  Some of this additional
  187. documentation is distributed standard with Perl, but you'll also find
  188. documentation for third-party modules there.
  189.  
  190. You should be able to view Perl's documentation with your man(1)
  191. program by including the proper directories in the appropriate start-up
  192. files, or in the MANPATH environment variable.  To find out where the
  193. configuration has installed the manpages, type:
  194.  
  195.     perl -V:man.dir
  196.  
  197. If the directories have a common stem, such as F</usr/local/man/man1>
  198. and F</usr/local/man/man3>, you need only to add that stem
  199. (F</usr/local/man>) to your man(1) configuration files or your MANPATH
  200. environment variable.  If they do not share a stem, you'll have to add
  201. both stems.
  202.  
  203. If that doesn't work for some reason, you can still use the
  204. supplied F<perldoc> script to view module information.  You might
  205. also look into getting a replacement man program.
  206.  
  207. If something strange has gone wrong with your program and you're not
  208. sure where you should look for help, try the B<-w> switch first.  It
  209. will often point out exactly where the trouble is.
  210.  
  211. =head1 DESCRIPTION
  212.  
  213. Perl is a language optimized for scanning arbitrary
  214. text files, extracting information from those text files, and printing
  215. reports based on that information.  It's also a good language for many
  216. system management tasks.  The language is intended to be practical
  217. (easy to use, efficient, complete) rather than beautiful (tiny,
  218. elegant, minimal).
  219.  
  220. Perl combines (in the author's opinion, anyway) some of the best
  221. features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
  222. those languages should have little difficulty with it.  (Language
  223. historians will also note some vestiges of B<csh>, Pascal, and even
  224. BASIC-PLUS.)  Expression syntax corresponds closely to C
  225. expression syntax.  Unlike most Unix utilities, Perl does not
  226. arbitrarily limit the size of your data--if you've got the memory,
  227. Perl can slurp in your whole file as a single string.  Recursion is of
  228. unlimited depth.  And the tables used by hashes (sometimes called
  229. "associative arrays") grow as necessary to prevent degraded
  230. performance.  Perl can use sophisticated pattern matching techniques to
  231. scan large amounts of data quickly.  Although optimized for
  232. scanning text, Perl can also deal with binary data, and can make dbm
  233. files look like hashes.  Setuid Perl scripts are safer than C programs
  234. through a dataflow tracing mechanism that prevents many stupid
  235. security holes.
  236.  
  237. If you have a problem that would ordinarily use B<sed> or B<awk> or
  238. B<sh>, but it exceeds their capabilities or must run a little faster,
  239. and you don't want to write the silly thing in C, then Perl may be for
  240. you.  There are also translators to turn your B<sed> and B<awk>
  241. scripts into Perl scripts.
  242.  
  243. But wait, there's more...
  244.  
  245. Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
  246. rewrite that provides the following additional benefits:
  247.  
  248. =over 4
  249.  
  250. =item *
  251.  
  252. modularity and reusability using innumerable modules 
  253.  
  254. Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
  255.  
  256. =item *
  257.  
  258. embeddable and extensible 
  259.  
  260. Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
  261. L<perlguts>, and L<xsubpp>.
  262.  
  263. =item *
  264.  
  265. roll-your-own magic variables (including multiple simultaneous DBM
  266. implementations)
  267.  
  268. Described in L<perltie> and L<AnyDBM_File>.
  269.  
  270. =item *
  271.  
  272. subroutines can now be overridden, autoloaded, and prototyped
  273.  
  274. Described in L<perlsub>.
  275.  
  276. =item *
  277.  
  278. arbitrarily nested data structures and anonymous functions
  279.  
  280. Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
  281.  
  282. =item *
  283.  
  284. object-oriented programming
  285.  
  286. Described in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
  287. and L<perlbot>.
  288.  
  289. =item *
  290.  
  291. support for light-weight processes (threads)
  292.  
  293. Described in L<perlthrtut> and L<threads>.
  294.  
  295. =item *
  296.  
  297. support for Unicode, internationalization, and localization
  298.  
  299. Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
  300.  
  301. =item *
  302.  
  303. lexical scoping
  304.  
  305. Described in L<perlsub>.
  306.  
  307. =item *
  308.  
  309. regular expression enhancements
  310.  
  311. Described in L<perlre>, with additional examples in L<perlop>.
  312.  
  313. =item *
  314.  
  315. enhanced debugger and interactive Perl environment,
  316. with integrated editor support
  317.  
  318. Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
  319.  
  320. =item *
  321.  
  322. POSIX 1003.1 compliant library
  323.  
  324. Described in L<POSIX>.
  325.  
  326. =back
  327.  
  328. Okay, that's I<definitely> enough hype.
  329.  
  330. =head1 AVAILABILITY
  331.  
  332. Perl is available for most operating systems, including virtually
  333. all Unix-like platforms.  See L<perlport/"Supported Platforms">
  334. for a listing.
  335.  
  336. =head1 ENVIRONMENT
  337.  
  338. See L<perlrun>.
  339.  
  340. =head1 AUTHOR
  341.  
  342. Larry Wall <larry@wall.org>, with the help of oodles of other folks.
  343.  
  344. If your Perl success stories and testimonials may be of help to others 
  345. who wish to advocate the use of Perl in their applications, 
  346. or if you wish to simply express your gratitude to Larry and the 
  347. Perl developers, please write to perl-thanks@perl.org .
  348.  
  349. =head1 FILES
  350.  
  351.  "@INC"            locations of perl libraries
  352.  
  353. =head1 SEE ALSO
  354.  
  355.  a2p    awk to perl translator
  356.  s2p    sed to perl translator
  357.  
  358.  http://www.perl.com/       the Perl Home Page
  359.  http://www.cpan.org/       the Comprehensive Perl Archive
  360.  http://www.perl.org/       Perl Mongers (Perl user groups)
  361.  
  362. =head1 DIAGNOSTICS
  363.  
  364. The C<use warnings> pragma (and the B<-w> switch) produces some 
  365. lovely diagnostics.
  366.  
  367. See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
  368. diagnostics> pragma automatically turns Perl's normally terse warnings
  369. and errors into these longer forms.
  370.  
  371. Compilation errors will tell you the line number of the error, with an
  372. indication of the next token or token type that was to be examined.
  373. (In a script passed to Perl via B<-e> switches, each
  374. B<-e> is counted as one line.)
  375.  
  376. Setuid scripts have additional constraints that can produce error
  377. messages such as "Insecure dependency".  See L<perlsec>.
  378.  
  379. Did we mention that you should definitely consider using the B<-w>
  380. switch?
  381.  
  382. =head1 BUGS
  383.  
  384. The B<-w> switch is not mandatory.
  385.  
  386. Perl is at the mercy of your machine's definitions of various
  387. operations such as type casting, atof(), and floating-point
  388. output with sprintf().
  389.  
  390. If your stdio requires a seek or eof between reads and writes on a
  391. particular stream, so does Perl.  (This doesn't apply to sysread()
  392. and syswrite().)
  393.  
  394. While none of the built-in data types have any arbitrary size limits
  395. (apart from memory size), there are still a few arbitrary limits:  a
  396. given variable name may not be longer than 251 characters.  Line numbers
  397. displayed by diagnostics are internally stored as short integers,
  398. so they are limited to a maximum of 65535 (higher numbers usually being
  399. affected by wraparound).
  400.  
  401. You may mail your bug reports (be sure to include full configuration
  402. information as output by the myconfig program in the perl source
  403. tree, or by C<perl -V>) to perlbug@perl.org .  If you've succeeded
  404. in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
  405. can be used to help mail in a bug report.
  406.  
  407. Perl actually stands for Pathologically Eclectic Rubbish Lister, but
  408. don't tell anyone I said that.
  409.  
  410. =head1 NOTES
  411.  
  412. The Perl motto is "There's more than one way to do it."  Divining
  413. how many more is left as an exercise to the reader.
  414.  
  415. The three principal virtues of a programmer are Laziness,
  416. Impatience, and Hubris.  See the Camel Book for why.
  417.  
  418.