home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / pod / perl.pod < prev    next >
Text File  |  2000-03-22  |  11KB  |  311 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. For ease of access, the Perl manual has been split up into several
  16. sections:
  17.  
  18.     perl        Perl overview (this section)
  19.     perldelta        Perl changes since previous version
  20.     perl5005delta    Perl changes in version 5.005
  21.     perl5004delta    Perl changes in version 5.004
  22.     perlfaq        Perl frequently asked questions
  23.     perltoc        Perl documentation table of contents
  24.  
  25.     perldata        Perl data structures
  26.     perlsyn        Perl syntax
  27.     perlop        Perl operators and precedence
  28.     perlre        Perl regular expressions
  29.     perlrun        Perl execution and options
  30.     perlfunc        Perl builtin functions
  31.     perlopentut        Perl open() tutorial
  32.     perlvar        Perl predefined variables
  33.     perlsub        Perl subroutines
  34.     perlmod        Perl modules: how they work
  35.     perlmodlib        Perl modules: how to write and use
  36.     perlmodinstall    Perl modules: how to install from CPAN
  37.     perlform        Perl formats
  38.     perlunicode        Perl unicode support
  39.     perllocale        Perl locale support
  40.  
  41.     perlreftut        Perl references short introduction
  42.     perlref        Perl references, the rest of the story
  43.     perldsc        Perl data structures intro
  44.     perllol        Perl data structures: arrays of arrays
  45.     perlboot        Perl OO tutorial for beginners
  46.     perltoot        Perl OO tutorial, part 1
  47.     perltootc        Perl OO tutorial, part 2
  48.     perlobj        Perl objects
  49.     perltie        Perl objects hidden behind simple variables
  50.     perlbot        Perl OO tricks and examples
  51.     perlipc        Perl interprocess communication
  52.     perlfork        Perl fork() information
  53.     perlthrtut        Perl threads tutorial
  54.     perllexwarn        Perl warnings and their control
  55.     perlfilter        Perl source filters
  56.     perldbmfilter    Perl DBM filters
  57.  
  58.     perlcompile        Perl compiler suite intro
  59.     perldebug        Perl debugging
  60.     perldiag        Perl diagnostic messages
  61.     perlnumber        Perl number semantics
  62.     perlsec        Perl security
  63.     perltrap        Perl traps for the unwary
  64.     perlport        Perl portability guide
  65.     perlstyle        Perl style guide
  66.  
  67.     perlpod        Perl plain old documentation
  68.     perlbook        Perl book information
  69.  
  70.     perlembed        Perl ways to embed perl in your C or C++ application
  71.     perlapio        Perl internal IO abstraction interface
  72.     perldebguts        Perl debugging guts and tips
  73.     perlxs        Perl XS application programming interface
  74.     perlxstut        Perl XS tutorial
  75.     perlguts        Perl internal functions for those doing extensions
  76.     perlcall        Perl calling conventions from C
  77.     perlapi        Perl API listing (autogenerated)
  78.     perlintern        Perl internal functions (autogenerated)
  79.  
  80.     perltodo        Perl things to do
  81.     perlhack        Perl hackers guide
  82.     perlhist        Perl history records
  83.  
  84.     perlamiga        Perl notes for Amiga
  85.     perlcygwin        Perl notes for Cygwin
  86.     perldos        Perl notes for DOS
  87.     perlhpux        Perl notes for HP-UX
  88.     perlmachten        Perl notes for Power MachTen
  89.     perlos2        Perl notes for OS/2
  90.     perlos390        Perl notes for OS/390
  91.     perlvms        Perl notes for VMS
  92.     perlwin32        Perl notes for Windows
  93.  
  94. (If you're intending to read these straight through for the first time,
  95. the suggested order will tend to reduce the number of forward references.)
  96.  
  97. By default, the manpages listed above are installed in the 
  98. F</usr/local/man/> directory.  
  99.  
  100. Extensive additional documentation for Perl modules is available.  The
  101. default configuration for perl will place this additional documentation
  102. in the F</usr/local/lib/perl5/man> directory (or else in the F<man>
  103. subdirectory of the Perl library directory).  Some of this additional
  104. documentation is distributed standard with Perl, but you'll also find
  105. documentation for third-party modules there.
  106.  
  107. You should be able to view Perl's documentation with your man(1)
  108. program by including the proper directories in the appropriate start-up
  109. files, or in the MANPATH environment variable.  To find out where the
  110. configuration has installed the manpages, type:
  111.  
  112.     perl -V:man.dir
  113.  
  114. If the directories have a common stem, such as F</usr/local/man/man1>
  115. and F</usr/local/man/man3>, you need only to add that stem
  116. (F</usr/local/man>) to your man(1) configuration files or your MANPATH
  117. environment variable.  If they do not share a stem, you'll have to add
  118. both stems.
  119.  
  120. If that doesn't work for some reason, you can still use the
  121. supplied F<perldoc> script to view module information.  You might
  122. also look into getting a replacement man program.
  123.  
  124. If something strange has gone wrong with your program and you're not
  125. sure where you should look for help, try the B<-w> switch first.  It
  126. will often point out exactly where the trouble is.
  127.  
  128. =head1 DESCRIPTION
  129.  
  130. Perl is a language optimized for scanning arbitrary
  131. text files, extracting information from those text files, and printing
  132. reports based on that information.  It's also a good language for many
  133. system management tasks.  The language is intended to be practical
  134. (easy to use, efficient, complete) rather than beautiful (tiny,
  135. elegant, minimal).
  136.  
  137. Perl combines (in the author's opinion, anyway) some of the best
  138. features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
  139. those languages should have little difficulty with it.  (Language
  140. historians will also note some vestiges of B<csh>, Pascal, and even
  141. BASIC-PLUS.)  Expression syntax corresponds closely to C
  142. expression syntax.  Unlike most Unix utilities, Perl does not
  143. arbitrarily limit the size of your data--if you've got the memory,
  144. Perl can slurp in your whole file as a single string.  Recursion is of
  145. unlimited depth.  And the tables used by hashes (sometimes called
  146. "associative arrays") grow as necessary to prevent degraded
  147. performance.  Perl can use sophisticated pattern matching techniques to
  148. scan large amounts of data quickly.  Although optimized for
  149. scanning text, Perl can also deal with binary data, and can make dbm
  150. files look like hashes.  Setuid Perl scripts are safer than C programs
  151. through a dataflow tracing mechanism that prevents many stupid
  152. security holes.
  153.  
  154. If you have a problem that would ordinarily use B<sed> or B<awk> or
  155. B<sh>, but it exceeds their capabilities or must run a little faster,
  156. and you don't want to write the silly thing in C, then Perl may be for
  157. you.  There are also translators to turn your B<sed> and B<awk>
  158. scripts into Perl scripts.
  159.  
  160. But wait, there's more...
  161.  
  162. Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
  163. rewrite that provides the following additional benefits:
  164.  
  165. =over
  166.  
  167. =item * modularity and reusability using innumerable modules 
  168.  
  169. Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
  170.  
  171. =item * embeddable and extensible 
  172.  
  173. Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
  174. L<perlguts>, and L<xsubpp>.
  175.  
  176. =item * roll-your-own magic variables (including multiple simultaneous DBM implementations)
  177.  
  178. Described in L<perltie> and L<AnyDBM_File>.
  179.  
  180. =item * subroutines can now be overridden, autoloaded, and prototyped
  181.  
  182. Described in L<perlsub>.
  183.  
  184. =item * arbitrarily nested data structures and anonymous functions
  185.  
  186. Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
  187.  
  188. =item * object-oriented programming
  189.  
  190. Described in L<perlobj>, L<perltoot>, and L<perlbot>.
  191.  
  192. =item * compilability into C code or Perl bytecode
  193.  
  194. Described in L<B> and L<B::Bytecode>.
  195.  
  196. =item * support for light-weight processes (threads)
  197.  
  198. Described in L<perlthrtut> and L<Thread>.
  199.  
  200. =item * support for internationalization, localization, and Unicode 
  201.  
  202. Described in L<perllocale> and L<utf8>.
  203.  
  204. =item * lexical scoping
  205.  
  206. Described in L<perlsub>.
  207.  
  208. =item * regular expression enhancements
  209.  
  210. Described in L<perlre>, with additional examples in L<perlop>.
  211.  
  212. =item * enhanced debugger and interactive Perl environment, with integrated editor support
  213.  
  214. Described in L<perldebug>.
  215.  
  216. =item * POSIX 1003.1 compliant library
  217.  
  218. Described in L<POSIX>.
  219.  
  220. =back
  221.  
  222. Okay, that's I<definitely> enough hype.
  223.  
  224. =head1 AVAILABILITY
  225.  
  226. Perl is available for most operating systems, including virtually
  227. all Unix-like platforms.  See L<perlport/"Supported Platforms">
  228. for a listing.
  229.  
  230. =head1 ENVIRONMENT
  231.  
  232. See L<perlrun>.
  233.  
  234. =head1 AUTHOR
  235.  
  236. Larry Wall <larry@wall.org>, with the help of oodles of other folks.
  237.  
  238. If your Perl success stories and testimonials may be of help to others 
  239. who wish to advocate the use of Perl in their applications, 
  240. or if you wish to simply express your gratitude to Larry and the 
  241. Perl developers, please write to perl-thanks@perl.org .
  242.  
  243. =head1 FILES
  244.  
  245.  "@INC"            locations of perl libraries
  246.  
  247. =head1 SEE ALSO
  248.  
  249.  a2p    awk to perl translator
  250.  s2p    sed to perl translator
  251.  
  252.  http://www.perl.com/        the Perl Home Page
  253.  http://www.perl.com/CPAN   the Comprehensive Perl Archive
  254.  
  255. =head1 DIAGNOSTICS
  256.  
  257. The C<use warnings> pragma (and the B<-w> switch) produces some 
  258. lovely diagnostics.
  259.  
  260. See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
  261. diagnostics> pragma automatically turns Perl's normally terse warnings
  262. and errors into these longer forms.
  263.  
  264. Compilation errors will tell you the line number of the error, with an
  265. indication of the next token or token type that was to be examined.
  266. (In a script passed to Perl via B<-e> switches, each
  267. B<-e> is counted as one line.)
  268.  
  269. Setuid scripts have additional constraints that can produce error
  270. messages such as "Insecure dependency".  See L<perlsec>.
  271.  
  272. Did we mention that you should definitely consider using the B<-w>
  273. switch?
  274.  
  275. =head1 BUGS
  276.  
  277. The B<-w> switch is not mandatory.
  278.  
  279. Perl is at the mercy of your machine's definitions of various
  280. operations such as type casting, atof(), and floating-point
  281. output with sprintf().
  282.  
  283. If your stdio requires a seek or eof between reads and writes on a
  284. particular stream, so does Perl.  (This doesn't apply to sysread()
  285. and syswrite().)
  286.  
  287. While none of the built-in data types have any arbitrary size limits
  288. (apart from memory size), there are still a few arbitrary limits:  a
  289. given variable name may not be longer than 251 characters.  Line numbers
  290. displayed by diagnostics are internally stored as short integers,
  291. so they are limited to a maximum of 65535 (higher numbers usually being
  292. affected by wraparound).
  293.  
  294. You may mail your bug reports (be sure to include full configuration
  295. information as output by the myconfig program in the perl source
  296. tree, or by C<perl -V>) to perlbug@perl.com .  If you've succeeded
  297. in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
  298. can be used to help mail in a bug report.
  299.  
  300. Perl actually stands for Pathologically Eclectic Rubbish Lister, but
  301. don't tell anyone I said that.
  302.  
  303. =head1 NOTES
  304.  
  305. The Perl motto is "There's more than one way to do it."  Divining
  306. how many more is left as an exercise to the reader.
  307.  
  308. The three principal virtues of a programmer are Laziness,
  309. Impatience, and Hubris.  See the Camel Book for why.
  310.  
  311.