home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 July / AMIGA_1996_7.BIN / ausgabe_7_96 / pd-programmierung / perl5_002bin.lha / man / catp / perl.0 next >
Text File  |  1996-03-02  |  24KB  |  397 lines

  1.  
  2.  
  3.  
  4. PERL(1)        User Contributed Perl Documentation        PERL(1)
  5.  
  6.  
  7. NNNNAAAAMMMMEEEE
  8.        perl - Practical Extraction and Report Language
  9.  
  10. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  11.        ppppeeeerrrrllll [ ----aaaaccccddddhhhhnnnnppppPPPPssssSSSSTTTTuuuuUUUUvvvvwwww ] [ ----0000[_o_c_t_a_l] ] [ ----DDDD_n_u_m_b_e_r_/_l_i_s_t] ]
  12.        [ ----FFFF_s_t_r_i_n_g ] [ ----iiii[_e_x_t_e_n_s_i_o_n] ] [ ----IIII_d_i_r ] [ ----llll_o_c_t_a_l ] [
  13.        ----xxxx_d_i_r ] [ _p_r_o_g_r_a_m_f_i_l_e | ----eeee _c_o_m_m_a_n_d ] [ _a_r_g_u_m_e_n_t ... ]
  14.  
  15.        For ease of access, the Perl manual has been split up into
  16.        a number of sections:
  17.  
  18.            ppppeeeerrrrllll        PPPPeeeerrrrllll oooovvvveeeerrrrvvvviiiieeeewwww ((((tttthhhhiiiissss sssseeeeccccttttiiiioooonnnn))))
  19.            ppppeeeerrrrllllttttoooocccc     PPPPeeeerrrrllll ddddooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn ttttaaaabbbblllleeee ooooffff ccccoooonnnntttteeeennnnttttssss
  20.            ppppeeeerrrrllllddddaaaattttaaaa    PPPPeeeerrrrllll ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeeessss
  21.            ppppeeeerrrrllllssssyyyynnnn     PPPPeeeerrrrllll ssssyyyynnnnttttaaaaxxxx
  22.            ppppeeeerrrrlllloooopppp      PPPPeeeerrrrllll ooooppppeeeerrrraaaattttoooorrrrssss aaaannnndddd pppprrrreeeecccceeeeddddeeeennnncccceeee
  23.            ppppeeeerrrrllllrrrreeee      PPPPeeeerrrrllll rrrreeeegggguuuullllaaaarrrr eeeexxxxpppprrrreeeessssssssiiiioooonnnnssss
  24.            ppppeeeerrrrllllrrrruuuunnnn     PPPPeeeerrrrllll eeeexxxxeeeeccccuuuuttttiiiioooonnnn aaaannnndddd ooooppppttttiiiioooonnnnssss
  25.            ppppeeeerrrrllllffffuuuunnnncccc    PPPPeeeerrrrllll bbbbuuuuiiiillllttttiiiinnnn ffffuuuunnnnccccttttiiiioooonnnnssss
  26.            ppppeeeerrrrllllvvvvaaaarrrr     PPPPeeeerrrrllll pppprrrreeeeddddeeeeffffiiiinnnneeeedddd vvvvaaaarrrriiiiaaaabbbblllleeeessss
  27.            ppppeeeerrrrllllssssuuuubbbb     PPPPeeeerrrrllll ssssuuuubbbbrrrroooouuuuttttiiiinnnneeeessss
  28.            ppppeeeerrrrllllmmmmoooodddd     PPPPeeeerrrrllll mmmmoooodddduuuulllleeeessss
  29.            ppppeeeerrrrllllrrrreeeeffff     PPPPeeeerrrrllll rrrreeeeffffeeeerrrreeeennnncccceeeessss
  30.            ppppeeeerrrrllllddddsssscccc     PPPPeeeerrrrllll ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeeessss iiiinnnnttttrrrroooo
  31.            ppppeeeerrrrlllllllloooollll     PPPPeeeerrrrllll ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeeessss:::: lllliiiissssttttssss ooooffff lllliiiissssttttssss
  32.            ppppeeeerrrrlllloooobbbbjjjj     PPPPeeeerrrrllll oooobbbbjjjjeeeeccccttttssss
  33.            ppppeeeerrrrllllttttiiiieeee     PPPPeeeerrrrllll oooobbbbjjjjeeeeccccttttssss hhhhiiiiddddddddeeeennnn bbbbeeeehhhhiiiinnnndddd ssssiiiimmmmpppplllleeee vvvvaaaarrrriiiiaaaabbbblllleeeessss
  34.            ppppeeeerrrrllllbbbbooootttt     PPPPeeeerrrrllll OOOOOOOO ttttrrrriiiicccckkkkssss aaaannnndddd eeeexxxxaaaammmmpppplllleeeessss
  35.            ppppeeeerrrrllllddddeeeebbbbuuuugggg   PPPPeeeerrrrllll ddddeeeebbbbuuuuggggggggiiiinnnngggg
  36.            ppppeeeerrrrllllddddiiiiaaaagggg    PPPPeeeerrrrllll ddddiiiiaaaaggggnnnnoooossssttttiiiicccc mmmmeeeessssssssaaaaggggeeeessss
  37.            ppppeeeerrrrllllffffoooorrrrmmmm    PPPPeeeerrrrllll ffffoooorrrrmmmmaaaattttssss
  38.            ppppeeeerrrrlllliiiippppcccc     PPPPeeeerrrrllll iiiinnnntttteeeerrrrpppprrrroooocccceeeessssssss ccccoooommmmmmmmuuuunnnniiiiccccaaaattttiiiioooonnnn
  39.            ppppeeeerrrrllllsssseeeecccc     PPPPeeeerrrrllll sssseeeeccccuuuurrrriiiittttyyyy
  40.            ppppeeeerrrrllllttttrrrraaaapppp    PPPPeeeerrrrllll ttttrrrraaaappppssss ffffoooorrrr tttthhhheeee uuuunnnnwwwwaaaarrrryyyy
  41.            ppppeeeerrrrllllssssttttyyyylllleeee   PPPPeeeerrrrllll ssssttttyyyylllleeee gggguuuuiiiiddddeeee
  42.            ppppeeeerrrrllllxxxxssss      PPPPeeeerrrrllll XXXXSSSS aaaapppppppplllliiiiccccaaaattttiiiioooonnnn pppprrrrooooggggrrrraaaammmmmmmmiiiinnnngggg iiiinnnntttteeeerrrrffffaaaacccceeee
  43.            ppppeeeerrrrllllxxxxssssttttuuuutttt   PPPPeeeerrrrllll XXXXSSSS ttttuuuuttttoooorrrriiiiaaaallll
  44.            ppppeeeerrrrllllgggguuuuttttssss    PPPPeeeerrrrllll iiiinnnntttteeeerrrrnnnnaaaallll ffffuuuunnnnccccttttiiiioooonnnnssss ffffoooorrrr tttthhhhoooosssseeee ddddooooiiiinnnngggg eeeexxxxtttteeeennnnssssiiiioooonnnnssss
  45.            ppppeeeerrrrllllccccaaaallllllll    PPPPeeeerrrrllll ccccaaaalllllllliiiinnnngggg ccccoooonnnnvvvveeeennnnttttiiiioooonnnnssss ffffrrrroooommmm CCCC
  46.            ppppeeeerrrrlllleeeemmmmbbbbeeeedddd   PPPPeeeerrrrllll hhhhoooowwww ttttoooo eeeemmmmbbbbeeeedddd ppppeeeerrrrllll iiiinnnn yyyyoooouuuurrrr CCCC oooorrrr CCCC++++++++ aaaapppppppp
  47.            ppppeeeerrrrllllppppoooodddd     PPPPeeeerrrrllll ppppllllaaaaiiiinnnn oooolllldddd ddddooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn
  48.            ppppeeeerrrrllllbbbbooooooookkkk    PPPPeeeerrrrllll bbbbooooooookkkk iiiinnnnffffoooorrrrmmmmaaaattttiiiioooonnnn
  49.  
  50.        (If you're intending to read these straight through for
  51.        the first time, the suggested order will tend to reduce
  52.        the number of forward references.)
  53.  
  54.        Additional documentation for Perl modules is available in
  55.        the _/_u_s_r_/_l_o_c_a_l_/_m_a_n_/ directory.  Some of this is
  56.        distributed standard with Perl, but you'll also find
  57.        third-party modules there.  You should be able to view
  58.        this with your _m_a_n(1) program by including the proper
  59.        directories in the appropriate start-up files.  To find
  60.        out where these are, type:
  61.  
  62.  
  63.  
  64. 30/Jan/96                perl 5.002 with                        1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PERL(1)        User Contributed Perl Documentation        PERL(1)
  71.  
  72.  
  73.            ppppeeeerrrrllll ----lllleeee ''''uuuusssseeee CCCCoooonnnnffffiiiigggg;;;; pppprrrriiiinnnntttt """"@@@@CCCCoooonnnnffffiiiigggg{{{{mmmmaaaannnn1111ddddiiiirrrr,,,,mmmmaaaannnn3333ddddiiiirrrr}}}}""""''''
  74.  
  75.        If the directories were _/_u_s_r_/_l_o_c_a_l_/_m_a_n_/_m_a_n_1 and
  76.        _/_u_s_r_/_l_o_c_a_l_/_m_a_n_/_m_a_n_3, you would only need to add
  77.        _/_u_s_r_/_l_o_c_a_l_/_m_a_n to your MANPATH.  If they are different,
  78.        you'll have to add both stems.
  79.  
  80.        If that doesn't work for some reason, you can still use
  81.        the supplied _p_e_r_l_d_o_c script to view module information.
  82.        You might also look into getting a replacement man
  83.        program.
  84.  
  85.        If something strange has gone wrong with your program and
  86.        you're not sure where you should look for help, try the ----wwww
  87.        switch first.  It will often point out exactly where the
  88.        trouble is.
  89.  
  90. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  91.        Perl is an interpreted language optimized for scanning
  92.        arbitrary text files, extracting information from those
  93.        text files, and printing reports based on that
  94.        information.  It's also a good language for many system
  95.        management tasks.  The language is intended to be
  96.        practical (easy to use, efficient, complete) rather than
  97.        beautiful (tiny, elegant, minimal).  It combines (in the
  98.        author's opinion, anyway) some of the best features of C,
  99.        sssseeeedddd, aaaawwwwkkkk, and sssshhhh, so people familiar with those languages
  100.        should have little difficulty with it.  (Language
  101.        historians will also note some vestiges of ccccsssshhhh, Pascal,
  102.        and even BASIC-PLUS.)  Expression syntax corresponds quite
  103.        closely to C expression syntax.  Unlike most Unix
  104.        utilities, Perl does not arbitrarily limit the size of
  105.        your data--if you've got the memory, Perl can slurp in
  106.        your whole file as a single string.  Recursion is of
  107.        unlimited depth.  And the hash tables used by associative
  108.        arrays grow as necessary to prevent degraded performance.
  109.        Perl uses sophisticated pattern matching techniques to
  110.        scan large amounts of data very quickly.  Although
  111.        optimized for scanning text, Perl can also deal with
  112.        binary data, and can make dbm files look like associative
  113.        arrays.  Setuid Perl scripts are safer than C programs
  114.        through a dataflow tracing mechanism which prevents many
  115.        stupid security holes.  If you have a problem that would
  116.        ordinarily use sssseeeedddd or aaaawwwwkkkk or sssshhhh, but it exceeds their
  117.        capabilities or must run a little faster, and you don't
  118.        want to write the silly thing in C, then Perl may be for
  119.        you.  There are also translators to turn your sssseeeedddd and aaaawwwwkkkk
  120.        scripts into Perl scripts.
  121.  
  122.        But wait, there's more...
  123.  
  124.        Perl version 5 is nearly a complete rewrite, and provides
  125.        the following additional benefits:
  126.  
  127.  
  128.  
  129.  
  130. 30/Jan/96                perl 5.002 with                        2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PERL(1)        User Contributed Perl Documentation        PERL(1)
  137.  
  138.  
  139.        +o Many usability enhancements
  140.             It is now possible to write much more readable Perl
  141.             code (even within regular expressions).  Formerly
  142.             cryptic variable names can be replaced by mnemonic
  143.             identifiers.  Error messages are more informative,
  144.             and the optional warnings will catch many of the
  145.             mistakes a novice might make.  This cannot be
  146.             stressed enough.  Whenever you get mysterious
  147.             behavior, try the ----wwww switch!!!  Whenever you don't
  148.             get mysterious behavior, try using ----wwww anyway.
  149.  
  150.        +o Simplified grammar
  151.             The new yacc grammar is one half the size of the old
  152.             one.  Many of the arbitrary grammar rules have been
  153.             regularized.  The number of reserved words has been
  154.             cut by 2/3.  Despite this, nearly all old Perl
  155.             scripts will continue to work unchanged.
  156.  
  157.        +o Lexical scoping
  158.             Perl variables may now be declared within a lexical
  159.             scope, like "auto" variables in C.  Not only is this
  160.             more efficient, but it contributes to better privacy
  161.             for "programming in the large".
  162.  
  163.        +o Arbitrarily nested data structures
  164.             Any scalar value, including any array element, may
  165.             now contain a reference to any other variable or
  166.             subroutine.  You can easily create anonymous
  167.             variables and subroutines.  Perl manages your
  168.             reference counts for you.
  169.  
  170.        +o Modularity and reusability
  171.             The Perl library is now defined in terms of modules
  172.             which can be easily shared among various packages.  A
  173.             package may choose to import all or a portion of a
  174.             module's published interface.  Pragmas (that is,
  175.             compiler directives) are defined and used by the same
  176.             mechanism.
  177.  
  178.        +o Object-oriented programming
  179.             A package can function as a class.  Dynamic multiple
  180.             inheritance and virtual methods are supported in a
  181.             straightforward manner and with very little new
  182.             syntax.  Filehandles may now be treated as objects.
  183.  
  184.        +o Embeddable and Extensible
  185.             Perl may now be embedded easily in your C or C++
  186.             application, and can either call or be called by your
  187.             routines through a documented interface.  The XS
  188.             preprocessor is provided to make it easy to glue your
  189.             C or C++ routines into Perl.  Dynamic loading of
  190.             modules is supported.
  191.  
  192.  
  193.  
  194.  
  195.  
  196. 30/Jan/96                perl 5.002 with                        3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. PERL(1)        User Contributed Perl Documentation        PERL(1)
  203.  
  204.  
  205.        +o POSIX compliant
  206.             A major new module is the POSIX module, which
  207.             provides access to all available POSIX routines and
  208.             definitions, via object classes where appropriate.
  209.  
  210.        +o Package constructors and destructors
  211.             The new BEGIN and END blocks provide means to capture
  212.             control as a package is being compiled, and after the
  213.             program exits.  As a degenerate case they work just
  214.             like awk's BEGIN and END when you use the ----pppp or ----nnnn
  215.             switches.
  216.  
  217.        +o Multiple simultaneous DBM implementations
  218.             A Perl program may now access DBM, NDBM, SDBM, GDBM,
  219.             and Berkeley DB files from the same script
  220.             simultaneously.  In fact, the old dbmopen interface
  221.             has been generalized to allow any variable to be tied
  222.             to an object class which defines its access methods.
  223.  
  224.        +o Subroutine definitions may now be autoloaded
  225.             In fact, the AUTOLOAD mechanism also allows you to
  226.             define any arbitrary semantics for undefined
  227.             subroutine calls.  It's not just for autoloading.
  228.  
  229.        +o Regular expression enhancements
  230.             You can now specify non-greedy quantifiers.  You can
  231.             now do grouping without creating a backreference.
  232.             You can now write regular expressions with embedded
  233.             whitespace and comments for readability.  A
  234.             consistent extensibility mechanism has been added
  235.             that is upwardly compatible with all old regular
  236.             expressions.
  237.  
  238.        Ok, that's _d_e_f_i_n_i_t_e_l_y enough hype.
  239.  
  240. EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  241.        HOME        Used if chdir has no argument.
  242.  
  243.        LOGDIR      Used if chdir has no argument and HOME is not
  244.                    set.
  245.  
  246.        PATH        Used in executing subprocesses, and in finding
  247.                    the script if ----SSSS is used.
  248.  
  249.        PERL5LIB    A colon-separated list of directories in which
  250.                    to look for Perl library files before looking
  251.                    in the standard library and the current
  252.                    directory.  If PERL5LIB is not defined,
  253.                    PERLLIB is used.  When running taint checks
  254.                    (because the script was running setuid or
  255.                    setgid, or the ----TTTT switch was used), neither
  256.                    variable is used.  The script should instead
  257.                    say
  258.  
  259.  
  260.  
  261.  
  262. 30/Jan/96                perl 5.002 with                        4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. PERL(1)        User Contributed Perl Documentation        PERL(1)
  269.  
  270.  
  271.                        uuuusssseeee lllliiiibbbb """"////mmmmyyyy////ddddiiiirrrreeeeccccttttoooorrrryyyy"""";;;;
  272.  
  273.  
  274.        PERL5DB     The command used to get the debugger code.  If
  275.                    unset, uses
  276.  
  277.                            BBBBEEEEGGGGIIIINNNN {{{{ rrrreeeeqqqquuuuiiiirrrreeee ''''ppppeeeerrrrllll5555ddddbbbb....ppppllll'''' }}}}
  278.  
  279.  
  280.        PERLLIB     A colon-separated list of directories in which
  281.                    to look for Perl library files before looking
  282.                    in the standard library and the current
  283.                    directory.  If PERL5LIB is defined, PERLLIB is
  284.                    not used.
  285.  
  286.        Apart from these, Perl uses no other environment
  287.        variables, except to make them available to the script
  288.        being executed, and to child processes.  However, scripts
  289.        running setuid would do well to execute the following
  290.        lines before doing anything else, just to keep people
  291.        honest:
  292.  
  293.            $$$$EEEENNNNVVVV{{{{''''PPPPAAAATTTTHHHH''''}}}} ==== ''''////bbbbiiiinnnn::::////uuuussssrrrr////bbbbiiiinnnn'''';;;;    #### oooorrrr wwwwhhhhaaaatttteeeevvvveeeerrrr yyyyoooouuuu nnnneeeeeeeedddd
  294.            $$$$EEEENNNNVVVV{{{{''''SSSSHHHHEEEELLLLLLLL''''}}}} ==== ''''////bbbbiiiinnnn////sssshhhh'''' iiiiffff ddddeeeeffffiiiinnnneeeedddd $$$$EEEENNNNVVVV{{{{''''SSSSHHHHEEEELLLLLLLL''''}}}};;;;
  295.            $$$$EEEENNNNVVVV{{{{''''IIIIFFFFSSSS''''}}}} ==== ''''''''          iiiiffff ddddeeeeffffiiiinnnneeeedddd $$$$EEEENNNNVVVV{{{{''''IIIIFFFFSSSS''''}}}};;;;
  296.  
  297.  
  298. AAAAUUUUTTTTHHHHOOOORRRR
  299.        Larry Wall <<_l_w_a_l_l_@_s_e_m_s_._c_o_m>, with the help of oodles of
  300.        other folks.
  301.  
  302. FFFFIIIILLLLEEEESSSS
  303.         """"////ttttmmmmpppp////ppppeeeerrrrllll----eeee$$$$$$$$""""        tttteeeemmmmppppoooorrrraaaarrrryyyy ffffiiiilllleeee ffffoooorrrr ----eeee ccccoooommmmmmmmaaaannnnddddssss
  304.         """"@@@@IIIINNNNCCCC""""                 llllooooccccaaaattttiiiioooonnnnssss ooooffff ppppeeeerrrrllll 5555 lllliiiibbbbrrrraaaarrrriiiieeeessss
  305.  
  306.  
  307. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  308.         aaaa2222pppp    aaaawwwwkkkk ttttoooo ppppeeeerrrrllll ttttrrrraaaannnnssssllllaaaattttoooorrrr
  309.  
  310.         ssss2222pppp    sssseeeedddd ttttoooo ppppeeeerrrrllll ttttrrrraaaannnnssssllllaaaattttoooorrrr
  311.  
  312.  
  313. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  314.        The ----wwww switch produces some lovely diagnostics.
  315.  
  316.        See the _p_e_r_l_d_i_a_g manpage for explanations of all Perl's
  317.        diagnostics.
  318.  
  319.        Compilation errors will tell you the line number of the
  320.        error, with an indication of the next token or token type
  321.        that was to be examined.  (In the case of a script passed
  322.        to Perl via ----eeee switches, each ----eeee is counted as one line.)
  323.  
  324.        Setuid scripts have additional constraints that can
  325.  
  326.  
  327.  
  328. 30/Jan/96                perl 5.002 with                        5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. PERL(1)        User Contributed Perl Documentation        PERL(1)
  335.  
  336.  
  337.        produce error messages such as "Insecure dependency".  See
  338.        the _p_e_r_l_s_e_c manpage.
  339.  
  340.        Did we mention that you should definitely consider using
  341.        the ----wwww switch?
  342.  
  343. BBBBUUUUGGGGSSSS
  344.        The ----wwww switch is not mandatory.
  345.  
  346.        Perl is at the mercy of your machine's definitions of
  347.        various operations such as type casting, _a_t_o_f_(_) and
  348.        _s_p_r_i_n_t_f_(_).  The latter can even trigger a coredump when
  349.        passed ludicrous input values.
  350.  
  351.        If your stdio requires a seek or eof between reads and
  352.        writes on a particular stream, so does Perl.  (This
  353.        doesn't apply to _s_y_s_r_e_a_d_(_) and _s_y_s_w_r_i_t_e_(_).)
  354.  
  355.        While none of the built-in data types have any arbitrary
  356.        size limits (apart from memory size), there are still a
  357.        few arbitrary limits:  a given identifier may not be
  358.        longer than 255 characters, and no component of your PATH
  359.        may be longer than 255 if you use ----SSSS.  A regular
  360.        expression may not compile to more than 32767 bytes
  361.        internally.
  362.  
  363.        See the perl bugs database at _h_t_t_p_:_/_/_p_e_r_l_._c_o_m_/_p_e_r_l_/_b_u_g_s_/.
  364.        You may mail your bug reports (be sure to include full
  365.        configuration information as output by the myconfig
  366.        program in the perl source tree) to _p_e_r_l_b_u_g_@_p_e_r_l_._c_o_m.  If
  367.        you've succeeded in compiling perl, the perlbug script in
  368.        the utils/ subdirectory can be used to help mail in a bug
  369.        report.
  370.  
  371.        Perl actually stands for Pathologically Eclectic Rubbish
  372.        Lister, but don't tell anyone I said that.
  373.  
  374. NNNNOOOOTTTTEEEESSSS
  375.        The Perl motto is "There's more than one way to do it."
  376.        Divining how many more is left as an exercise to the
  377.        reader.
  378.  
  379.        The three principal virtues of a programmer are Laziness,
  380.        Impatience, and Hubris.  See the Camel Book for why.
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. 30/Jan/96                perl 5.002 with                        6
  395.  
  396.  
  397.