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