home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / perl.pod < prev    next >
Text File  |  2003-11-07  |  14KB  |  430 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.     perl581delta    Perl changes in version 5.8.1
  136.     perl58delta     Perl changes in version 5.8.0
  137.     perl573delta    Perl changes in version 5.7.3
  138.     perl572delta    Perl changes in version 5.7.2
  139.     perl571delta    Perl changes in version 5.7.1
  140.     perl570delta    Perl changes in version 5.7.0
  141.     perl561delta    Perl changes in version 5.6.1
  142.     perl56delta     Perl changes in version 5.6
  143.     perl5005delta    Perl changes in version 5.005
  144.     perl5004delta    Perl changes in version 5.004
  145.  
  146.     perlartistic    Perl Artistic License
  147.     perlgpl        GNU General Public License
  148.  
  149. =head2 Language-Specific
  150.  
  151.     perlcn        Perl for Simplified Chinese (in EUC-CN)
  152.     perljp        Perl for Japanese (in EUC-JP)
  153.     perlko        Perl for Korean (in EUC-KR)
  154.     perltw        Perl for Traditional Chinese (in Big5)
  155.  
  156. =head2 Platform-Specific
  157.  
  158.     perlaix        Perl notes for AIX
  159.     perlamiga        Perl notes for AmigaOS
  160.     perlapollo        Perl notes for Apollo DomainOS
  161.     perlbeos        Perl notes for BeOS
  162.     perlbs2000        Perl notes for POSIX-BC BS2000
  163.     perlce        Perl notes for WinCE
  164.     perlcygwin        Perl notes for Cygwin
  165.     perldgux        Perl notes for DG/UX
  166.     perldos        Perl notes for DOS
  167.     perlepoc        Perl notes for EPOC
  168.     perlfreebsd     Perl notes for FreeBSD
  169.     perlhpux        Perl notes for HP-UX
  170.     perlhurd        Perl notes for Hurd
  171.     perlirix        Perl notes for Irix
  172.     perlmachten     Perl notes for Power MachTen
  173.     perlmacos        Perl notes for Mac OS (Classic)
  174.     perlmacosx        Perl notes for Mac OS X
  175.     perlmint        Perl notes for MiNT
  176.     perlmpeix        Perl notes for MPE/iX
  177.     perlnetware     Perl notes for NetWare
  178.     perlos2        Perl notes for OS/2
  179.     perlos390        Perl notes for OS/390
  180.     perlos400        Perl notes for OS/400
  181.     perlplan9        Perl notes for Plan 9
  182.     perlqnx        Perl notes for QNX
  183.     perlsolaris     Perl notes for Solaris
  184.     perltru64        Perl notes for Tru64
  185.     perluts        Perl notes for UTS
  186.     perlvmesa        Perl notes for VM/ESA
  187.     perlvms        Perl notes for VMS
  188.     perlvos        Perl notes for Stratus VOS
  189.     perlwin32        Perl notes for Windows
  190.  
  191.  
  192. By default, the manpages listed above are installed in the 
  193. F</usr/local/man/> directory.  
  194.  
  195. Extensive additional documentation for Perl modules is available.  The
  196. default configuration for perl will place this additional documentation
  197. in the F</usr/local/lib/perl5/man> directory (or else in the F<man>
  198. subdirectory of the Perl library directory).  Some of this additional
  199. documentation is distributed standard with Perl, but you'll also find
  200. documentation for third-party modules there.
  201.  
  202. You should be able to view Perl's documentation with your man(1)
  203. program by including the proper directories in the appropriate start-up
  204. files, or in the MANPATH environment variable.  To find out where the
  205. configuration has installed the manpages, type:
  206.  
  207.     perl -V:man.dir
  208.  
  209. If the directories have a common stem, such as F</usr/local/man/man1>
  210. and F</usr/local/man/man3>, you need only to add that stem
  211. (F</usr/local/man>) to your man(1) configuration files or your MANPATH
  212. environment variable.  If they do not share a stem, you'll have to add
  213. both stems.
  214.  
  215. If that doesn't work for some reason, you can still use the
  216. supplied F<perldoc> script to view module information.  You might
  217. also look into getting a replacement man program.
  218.  
  219. If something strange has gone wrong with your program and you're not
  220. sure where you should look for help, try the B<-w> switch first.  It
  221. will often point out exactly where the trouble is.
  222.  
  223. =head1 DESCRIPTION
  224.  
  225. Perl is a language optimized for scanning arbitrary
  226. text files, extracting information from those text files, and printing
  227. reports based on that information.  It's also a good language for many
  228. system management tasks.  The language is intended to be practical
  229. (easy to use, efficient, complete) rather than beautiful (tiny,
  230. elegant, minimal).
  231.  
  232. Perl combines (in the author's opinion, anyway) some of the best
  233. features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
  234. those languages should have little difficulty with it.  (Language
  235. historians will also note some vestiges of B<csh>, Pascal, and even
  236. BASIC-PLUS.)  Expression syntax corresponds closely to C
  237. expression syntax.  Unlike most Unix utilities, Perl does not
  238. arbitrarily limit the size of your data--if you've got the memory,
  239. Perl can slurp in your whole file as a single string.  Recursion is of
  240. unlimited depth.  And the tables used by hashes (sometimes called
  241. "associative arrays") grow as necessary to prevent degraded
  242. performance.  Perl can use sophisticated pattern matching techniques to
  243. scan large amounts of data quickly.  Although optimized for
  244. scanning text, Perl can also deal with binary data, and can make dbm
  245. files look like hashes.  Setuid Perl scripts are safer than C programs
  246. through a dataflow tracing mechanism that prevents many stupid
  247. security holes.
  248.  
  249. If you have a problem that would ordinarily use B<sed> or B<awk> or
  250. B<sh>, but it exceeds their capabilities or must run a little faster,
  251. and you don't want to write the silly thing in C, then Perl may be for
  252. you.  There are also translators to turn your B<sed> and B<awk>
  253. scripts into Perl scripts.
  254.  
  255. But wait, there's more...
  256.  
  257. Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
  258. rewrite that provides the following additional benefits:
  259.  
  260. =over 4
  261.  
  262. =item *
  263.  
  264. modularity and reusability using innumerable modules 
  265.  
  266. Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
  267.  
  268. =item *
  269.  
  270. embeddable and extensible 
  271.  
  272. Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
  273. L<perlguts>, and L<xsubpp>.
  274.  
  275. =item *
  276.  
  277. roll-your-own magic variables (including multiple simultaneous DBM
  278. implementations)
  279.  
  280. Described in L<perltie> and L<AnyDBM_File>.
  281.  
  282. =item *
  283.  
  284. subroutines can now be overridden, autoloaded, and prototyped
  285.  
  286. Described in L<perlsub>.
  287.  
  288. =item *
  289.  
  290. arbitrarily nested data structures and anonymous functions
  291.  
  292. Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
  293.  
  294. =item *
  295.  
  296. object-oriented programming
  297.  
  298. Described in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
  299. and L<perlbot>.
  300.  
  301. =item *
  302.  
  303. support for light-weight processes (threads)
  304.  
  305. Described in L<perlthrtut> and L<threads>.
  306.  
  307. =item *
  308.  
  309. support for Unicode, internationalization, and localization
  310.  
  311. Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
  312.  
  313. =item *
  314.  
  315. lexical scoping
  316.  
  317. Described in L<perlsub>.
  318.  
  319. =item *
  320.  
  321. regular expression enhancements
  322.  
  323. Described in L<perlre>, with additional examples in L<perlop>.
  324.  
  325. =item *
  326.  
  327. enhanced debugger and interactive Perl environment,
  328. with integrated editor support
  329.  
  330. Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
  331.  
  332. =item *
  333.  
  334. POSIX 1003.1 compliant library
  335.  
  336. Described in L<POSIX>.
  337.  
  338. =back
  339.  
  340. Okay, that's I<definitely> enough hype.
  341.  
  342. =head1 AVAILABILITY
  343.  
  344. Perl is available for most operating systems, including virtually
  345. all Unix-like platforms.  See L<perlport/"Supported Platforms">
  346. for a listing.
  347.  
  348. =head1 ENVIRONMENT
  349.  
  350. See L<perlrun>.
  351.  
  352. =head1 AUTHOR
  353.  
  354. Larry Wall <larry@wall.org>, with the help of oodles of other folks.
  355.  
  356. If your Perl success stories and testimonials may be of help to others 
  357. who wish to advocate the use of Perl in their applications, 
  358. or if you wish to simply express your gratitude to Larry and the 
  359. Perl developers, please write to perl-thanks@perl.org .
  360.  
  361. =head1 FILES
  362.  
  363.  "@INC"            locations of perl libraries
  364.  
  365. =head1 SEE ALSO
  366.  
  367.  a2p    awk to perl translator
  368.  s2p    sed to perl translator
  369.  
  370.  http://www.perl.com/       the Perl Home Page
  371.  http://www.cpan.org/       the Comprehensive Perl Archive
  372.  http://www.perl.org/       Perl Mongers (Perl user groups)
  373.  
  374. =head1 DIAGNOSTICS
  375.  
  376. The C<use warnings> pragma (and the B<-w> switch) produces some 
  377. lovely diagnostics.
  378.  
  379. See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
  380. diagnostics> pragma automatically turns Perl's normally terse warnings
  381. and errors into these longer forms.
  382.  
  383. Compilation errors will tell you the line number of the error, with an
  384. indication of the next token or token type that was to be examined.
  385. (In a script passed to Perl via B<-e> switches, each
  386. B<-e> is counted as one line.)
  387.  
  388. Setuid scripts have additional constraints that can produce error
  389. messages such as "Insecure dependency".  See L<perlsec>.
  390.  
  391. Did we mention that you should definitely consider using the B<-w>
  392. switch?
  393.  
  394. =head1 BUGS
  395.  
  396. The B<-w> switch is not mandatory.
  397.  
  398. Perl is at the mercy of your machine's definitions of various
  399. operations such as type casting, atof(), and floating-point
  400. output with sprintf().
  401.  
  402. If your stdio requires a seek or eof between reads and writes on a
  403. particular stream, so does Perl.  (This doesn't apply to sysread()
  404. and syswrite().)
  405.  
  406. While none of the built-in data types have any arbitrary size limits
  407. (apart from memory size), there are still a few arbitrary limits:  a
  408. given variable name may not be longer than 251 characters.  Line numbers
  409. displayed by diagnostics are internally stored as short integers,
  410. so they are limited to a maximum of 65535 (higher numbers usually being
  411. affected by wraparound).
  412.  
  413. You may mail your bug reports (be sure to include full configuration
  414. information as output by the myconfig program in the perl source
  415. tree, or by C<perl -V>) to perlbug@perl.org .  If you've succeeded
  416. in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
  417. can be used to help mail in a bug report.
  418.  
  419. Perl actually stands for Pathologically Eclectic Rubbish Lister, but
  420. don't tell anyone I said that.
  421.  
  422. =head1 NOTES
  423.  
  424. The Perl motto is "There's more than one way to do it."  Divining
  425. how many more is left as an exercise to the reader.
  426.  
  427. The three principal virtues of a programmer are Laziness,
  428. Impatience, and Hubris.  See the Camel Book for why.
  429.  
  430.