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 / perlvar.0 < prev    next >
Text File  |  1996-03-02  |  38KB  |  859 lines

  1.  
  2.  
  3.  
  4. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  5.  
  6.  
  7. NNNNAAAAMMMMEEEE
  8.        perlvar - Perl predefined variables
  9.  
  10. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  11.        PPPPrrrreeeeddddeeeeffffiiiinnnneeeedddd NNNNaaaammmmeeeessss
  12.  
  13.        The following names have special meaning to Perl.  Most of
  14.        the punctuational names have reasonable mnemonics, or
  15.        analogues in one of the shells.  Nevertheless, if you wish
  16.        to use the long variable names, you just need to say
  17.  
  18.            uuuusssseeee EEEEnnnngggglllliiiisssshhhh;;;;
  19.  
  20.        at the top of your program.  This will alias all the short
  21.        names to the long names in the current package.  Some of
  22.        them even have medium names, generally borrowed from aaaawwwwkkkk.
  23.  
  24.        To go a step further, those variables that depend on the
  25.        currently selected filehandle may instead be set by
  26.        calling an object method on the FileHandle object.
  27.        (Summary lines below for this contain the word HANDLE.)
  28.        First you must say
  29.  
  30.            uuuusssseeee FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
  31.  
  32.        after which you may use either
  33.  
  34.            mmmmeeeetttthhhhoooodddd HHHHAAAANNNNDDDDLLLLEEEE EEEEXXXXPPPPRRRR
  35.  
  36.        or
  37.  
  38.            HHHHAAAANNNNDDDDLLLLEEEE---->>>>mmmmeeeetttthhhhoooodddd((((EEEEXXXXPPPPRRRR))))
  39.  
  40.        Each of the methods returns the old value of the
  41.        FileHandle attribute.  The methods each take an optional
  42.        EXPR, which if supplied specifies the new value for the
  43.        FileHandle attribute in question.  If not supplied, most
  44.        of the methods do nothing to the current value, except for
  45.        _a_u_t_o_f_l_u_s_h_(_), which will assume a 1 for you, just to be
  46.        different.
  47.  
  48.        A few of these variables are considered "read-only".  This
  49.        means that if you try to assign to this variable, either
  50.        directly or indirectly through a reference, you'll raise a
  51.        run-time exception.
  52.  
  53.        $ARG
  54.  
  55.        $_      The default input and pattern-searching space.
  56.                The following pairs are equivalent:
  57.  
  58.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{............}}}}    #### oooonnnnllllyyyy eeeeqqqquuuuiiiivvvvaaaalllleeeennnntttt iiiinnnn wwwwhhhhiiiilllleeee!!!!
  59.                    wwwwhhhhiiiilllleeee (((($$$$____ ==== <<<<>>>>)))) {{{{............}}}}
  60.  
  61.  
  62.  
  63.  
  64. 23/Jan/96                perl 5.002 with                        1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  71.  
  72.  
  73.                    ////^^^^SSSSuuuubbbbjjjjeeeecccctttt::::////
  74.                    $$$$____ ====~~~~ ////^^^^SSSSuuuubbbbjjjjeeeecccctttt::::////
  75.  
  76.                    ttttrrrr////aaaa----zzzz////AAAA----ZZZZ////
  77.                    $$$$____ ====~~~~ ttttrrrr////aaaa----zzzz////AAAA----ZZZZ////
  78.  
  79.                    cccchhhhoooopppp
  80.                    cccchhhhoooopppp(((($$$$____))))
  81.  
  82.                Here are the places where Perl will assume $$$$____ even
  83.                if you don't use it:
  84.  
  85.        +o          Various unary functions, including functions
  86.                   like _o_r_d_(_) and _i_n_t_(_), as well as the all file
  87.                   tests (----ffff, ----dddd) except for ----tttt, which defaults to
  88.                   STDIN.
  89.  
  90.        +o          Various list functions like _p_r_i_n_t_(_) and
  91.                   _u_n_l_i_n_k_(_).
  92.  
  93.        +o          The pattern matching operations mmmm////////, ssss////////////, and
  94.                   ttttrrrr//////////// when used without an ====~~~~ operator.
  95.  
  96.        +o          The default iterator variable in a ffffoooorrrreeeeaaaacccchhhh loop
  97.                   if no other variable is supplied.
  98.  
  99.        +o          The implicit iterator variable in the _g_r_e_p_(_)
  100.                   and _m_a_p_(_) functions.
  101.  
  102.        +o          The default place to put an input record when a
  103.                   <<<<FFFFHHHH>>>> operation's result is tested by itself as
  104.                   the sole criterion of a wwwwhhhhiiiilllleeee test.  Note that
  105.                   outside of a wwwwhhhhiiiilllleeee test, this will not happen.
  106.  
  107.                   (Mnemonic: underline is understood in certain
  108.                   operations.)
  109.  
  110.        $<_d_i_g_i_t>
  111.                Contains the subpattern from the corresponding set
  112.                of parentheses in the last pattern matched, not
  113.                counting patterns matched in nested blocks that
  114.                have been exited already.  (Mnemonic: like
  115.                \digit.)  These variables are all read-only.
  116.  
  117.        $MATCH
  118.  
  119.        $&      The string matched by the last successful pattern
  120.                match (not counting any matches hidden within a
  121.                BLOCK or _e_v_a_l_(_) enclosed by the current BLOCK).
  122.                (Mnemonic: like & in some editors.)  This variable
  123.                is read-only.
  124.  
  125.        $PREMATCH
  126.  
  127.  
  128.  
  129.  
  130. 23/Jan/96                perl 5.002 with                        2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  137.  
  138.  
  139.        $`      The string preceding whatever was matched by the
  140.                last successful pattern match (not counting any
  141.                matches hidden within a BLOCK or eval enclosed by
  142.                the current BLOCK).  (Mnemonic: ` often precedes a
  143.                quoted string.)  This variable is read-only.
  144.  
  145.        $POSTMATCH
  146.  
  147.        $'      The string following whatever was matched by the
  148.                last successful pattern match (not counting any
  149.                matches hidden within a BLOCK or _e_v_a_l_(_) enclosed
  150.                by the current BLOCK).  (Mnemonic: ' often follows
  151.                a quoted string.)  Example:
  152.  
  153.                    $$$$____ ==== ''''aaaabbbbccccddddeeeeffffgggghhhhiiii'''';;;;
  154.                    ////ddddeeeeffff////;;;;
  155.                    pppprrrriiiinnnntttt """"$$$$````::::$$$$&&&&::::$$$$''''\\\\nnnn"""";;;;         #### pppprrrriiiinnnnttttssss aaaabbbbcccc::::ddddeeeeffff::::gggghhhhiiii
  156.  
  157.                This variable is read-only.
  158.  
  159.        $LAST_PAREN_MATCH
  160.  
  161.        $+      The last bracket matched by the last search
  162.                pattern.  This is useful if you don't know which
  163.                of a set of alternative patterns matched.  For
  164.                example:
  165.  
  166.                    ////VVVVeeeerrrrssssiiiioooonnnn:::: ((((....****))))||||RRRReeeevvvviiiissssiiiioooonnnn:::: ((((....****))))//// &&&&&&&& (((($$$$rrrreeeevvvv ==== $$$$++++))));;;;
  167.  
  168.                (Mnemonic: be positive and forward looking.)  This
  169.                variable is read-only.
  170.  
  171.        $MULTILINE_MATCHING
  172.  
  173.        $*      Set to 1 to do multiline matching within a string,
  174.                0 to tell Perl that it can assume that strings
  175.                contain a single line, for the purpose of
  176.                optimizing pattern matches.  Pattern matches on
  177.                strings containing multiple newlines can produce
  178.                confusing results when "$$$$****" is 0.  Default is 0.
  179.                (Mnemonic: * matches multiple things.)  Note that
  180.                this variable only influences the interpretation
  181.                of "^^^^" and "$$$$".  A literal newline can be searched
  182.                for even when $$$$**** ======== 0000.
  183.  
  184.                Use of "$$$$****" is deprecated in Perl 5.
  185.  
  186.        input_line_number HANDLE EXPR
  187.  
  188.        $INPUT_LINE_NUMBER
  189.  
  190.        $NR
  191.  
  192.  
  193.  
  194.  
  195.  
  196. 23/Jan/96                perl 5.002 with                        3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  203.  
  204.  
  205.        $.      The current input line number of the last
  206.                filehandle that was read.  An explicit close on
  207.                the filehandle resets the line number.  Since "<<<<>>>>"
  208.                never does an explicit close, line numbers
  209.                increase across ARGV files (but see examples under
  210.                _e_o_f_(_)).  Localizing $$$$.... has the effect of also
  211.                localizing Perl's notion of "the last read
  212.                filehandle".  (Mnemonic: many programs use "." to
  213.                mean the current line number.)
  214.  
  215.        input_record_separator HANDLE EXPR
  216.  
  217.        $INPUT_RECORD_SEPARATOR
  218.  
  219.        $RS
  220.  
  221.        $/      The input record separator, newline by default.
  222.                Works like aaaawwwwkkkk's RS variable, including treating
  223.                blank lines as delimiters if set to the null
  224.                string.  You may set it to a multicharacter string
  225.                to match a multi-character delimiter.  Note that
  226.                setting it to """"\\\\nnnn\\\\nnnn"""" means something slightly
  227.                different than setting it to """""""", if the file
  228.                contains consecutive blank lines.  Setting it to
  229.                """""""" will treat two or more consecutive blank lines
  230.                as a single blank line.  Setting it to """"\\\\nnnn\\\\nnnn"""" will
  231.                blindly assume that the next input character
  232.                belongs to the next paragraph, even if it's a
  233.                newline.  (Mnemonic: / is used to delimit line
  234.                boundaries when quoting poetry.)
  235.  
  236.                    uuuunnnnddddeeeeffff $$$$////;;;;
  237.                    $$$$____ ==== <<<<FFFFHHHH>>>>;;;;          #### wwwwhhhhoooolllleeee ffffiiiilllleeee nnnnoooowwww hhhheeeerrrreeee
  238.                    ssss////\\\\nnnn[[[[ \\\\tttt]]]]++++//// ////gggg;;;;
  239.  
  240.  
  241.        autoflush HANDLE EXPR
  242.  
  243.        $OUTPUT_AUTOFLUSH
  244.  
  245.        $|      If set to nonzero, forces a flush after every
  246.                write or print on the currently selected output
  247.                channel.  Default is 0.  Note that STDOUT will
  248.                typically be line buffered if output is to the
  249.                terminal and block buffered otherwise.  Setting
  250.                this variable is useful primarily when you are
  251.                outputting to a pipe, such as when you are running
  252.                a Perl script under rsh and want to see the output
  253.                as it's happening.  This has no effect on input
  254.                buffering.  (Mnemonic: when you want your pipes to
  255.                be piping hot.)
  256.  
  257.        output_field_separator HANDLE EXPR
  258.  
  259.  
  260.  
  261.  
  262. 23/Jan/96                perl 5.002 with                        4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  269.  
  270.  
  271.        $OUTPUT_FIELD_SEPARATOR
  272.  
  273.        $OFS
  274.  
  275.        $,      The output field separator for the print operator.
  276.                Ordinarily the print operator simply prints out
  277.                the comma separated fields you specify.  In order
  278.                to get behavior more like aaaawwwwkkkk, set this variable
  279.                as you would set aaaawwwwkkkk's OFS variable to specify
  280.                what is printed between fields.  (Mnemonic: what
  281.                is printed when there is a , in your print
  282.                statement.)
  283.  
  284.        output_record_separator HANDLE EXPR
  285.  
  286.        $OUTPUT_RECORD_SEPARATOR
  287.  
  288.        $ORS
  289.  
  290.        $\      The output record separator for the print
  291.                operator.  Ordinarily the print operator simply
  292.                prints out the comma separated fields you specify,
  293.                with no trailing newline or record separator
  294.                assumed.  In order to get behavior more like aaaawwwwkkkk,
  295.                set this variable as you would set aaaawwwwkkkk's ORS
  296.                variable to specify what is printed at the end of
  297.                the print.  (Mnemonic: you set "$$$$\\\\" instead of
  298.                adding \n at the end of the print.  Also, it's
  299.                just like /, but it's what you get "back" from
  300.                Perl.)
  301.  
  302.        $LIST_SEPARATOR
  303.  
  304.        $"      This is like "$$$$,,,," except that it applies to array
  305.                values interpolated into a double-quoted string
  306.                (or similar interpreted string).  Default is a
  307.                space.  (Mnemonic: obvious, I think.)
  308.  
  309.        $SUBSCRIPT_SEPARATOR
  310.  
  311.        $SUBSEP
  312.  
  313.        $;      The subscript separator for multi-dimensional
  314.                array emulation.  If you refer to a hash element
  315.                as
  316.  
  317.                    $$$$ffffoooooooo{{{{$$$$aaaa,,,,$$$$bbbb,,,,$$$$cccc}}}}
  318.  
  319.                it really means
  320.  
  321.                    $$$$ffffoooooooo{{{{jjjjooooiiiinnnn(((($$$$;;;;,,,, $$$$aaaa,,,, $$$$bbbb,,,, $$$$cccc))))}}}}
  322.  
  323.                But don't put
  324.  
  325.  
  326.  
  327.  
  328. 23/Jan/96                perl 5.002 with                        5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  335.  
  336.  
  337.                    @@@@ffffoooooooo{{{{$$$$aaaa,,,,$$$$bbbb,,,,$$$$cccc}}}}      #### aaaa sssslllliiiicccceeee--------nnnnooootttteeee tttthhhheeee @@@@
  338.  
  339.                which means
  340.  
  341.                    (((($$$$ffffoooooooo{{{{$$$$aaaa}}}},,,,$$$$ffffoooooooo{{{{$$$$bbbb}}}},,,,$$$$ffffoooooooo{{{{$$$$cccc}}}}))))
  342.  
  343.                Default is "\034", the same as SUBSEP in aaaawwwwkkkk.
  344.                Note that if your keys contain binary data there
  345.                might not be any safe value for "$$$$;;;;".  (Mnemonic:
  346.                comma (the syntactic subscript separator) is a
  347.                semi-semicolon.  Yeah, I know, it's pretty lame,
  348.                but "$$$$,,,," is already taken for something more
  349.                important.)
  350.  
  351.                Consider using "real" multi-dimensional arrays in
  352.                Perl 5.
  353.  
  354.        $OFMT
  355.  
  356.        $#      The output format for printed numbers.  This
  357.                variable is a half-hearted attempt to emulate
  358.                aaaawwwwkkkk's OFMT variable.  There are times, however,
  359.                when aaaawwwwkkkk and Perl have differing notions of what
  360.                is in fact numeric.  Also, the initial value is
  361.                %.20g rather than %.6g, so you need to set "$$$$####"
  362.                explicitly to get aaaawwwwkkkk's value.  (Mnemonic: # is
  363.                the number sign.)
  364.  
  365.                Use of "$$$$####" is deprecated in Perl 5.
  366.  
  367.        format_page_number HANDLE EXPR
  368.  
  369.        $FORMAT_PAGE_NUMBER
  370.  
  371.        $%      The current page number of the currently selected
  372.                output channel.  (Mnemonic: % is page number in
  373.                nnnnrrrrooooffffffff.)
  374.  
  375.        format_lines_per_page HANDLE EXPR
  376.  
  377.        $FORMAT_LINES_PER_PAGE
  378.  
  379.        $=      The current page length (printable lines) of the
  380.                currently selected output channel.  Default is 60.
  381.                (Mnemonic: = has horizontal lines.)
  382.  
  383.        format_lines_left HANDLE EXPR
  384.  
  385.        $FORMAT_LINES_LEFT
  386.  
  387.        $-      The number of lines left on the page of the
  388.                currently selected output channel.  (Mnemonic:
  389.                lines_on_page - lines_printed.)
  390.  
  391.  
  392.  
  393.  
  394. 23/Jan/96                perl 5.002 with                        6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  401.  
  402.  
  403.        format_name HANDLE EXPR
  404.  
  405.        $FORMAT_NAME
  406.  
  407.        $~      The name of the current report format for the
  408.                currently selected output channel.  Default is
  409.                name of the filehandle.  (Mnemonic: brother to
  410.                "$$$$^^^^".)
  411.  
  412.        format_top_name HANDLE EXPR
  413.  
  414.        $FORMAT_TOP_NAME
  415.  
  416.        $^      The name of the current top-of-page format for the
  417.                currently selected output channel.  Default is
  418.                name of the filehandle with _TOP appended.
  419.                (Mnemonic: points to top of page.)
  420.  
  421.        format_line_break_characters HANDLE EXPR
  422.  
  423.        $FORMAT_LINE_BREAK_CHARACTERS
  424.  
  425.        $:      The current set of characters after which a string
  426.                may be broken to fill continuation fields
  427.                (starting with ^) in a format.  Default is " \n-",
  428.                to break on whitespace or hyphens.  (Mnemonic: a
  429.                "colon" in poetry is a part of a line.)
  430.  
  431.        format_formfeed HANDLE EXPR
  432.  
  433.        $FORMAT_FORMFEED
  434.  
  435.        $^L     What formats output to perform a formfeed.
  436.                Default is \f.
  437.  
  438.        $ACCUMULATOR
  439.  
  440.        $^A     The current value of the _w_r_i_t_e_(_) accumulator for
  441.                _f_o_r_m_a_t_(_) lines.  A format contains _f_o_r_m_l_i_n_e_(_)
  442.                commands that put their result into $$$$^^^^AAAA.  After
  443.                calling its format, _w_r_i_t_e_(_) prints out the
  444.                contents of $$$$^^^^AAAA and empties.  So you never
  445.                actually see the contents of $$$$^^^^AAAA unless you call
  446.                _f_o_r_m_l_i_n_e_(_) yourself and then look at it.  See the
  447.                _p_e_r_l_f_o_r_m manpage and the ffffoooorrrrmmmmlllliiiinnnneeee(((()))) entry in the
  448.                _p_e_r_l_f_u_n_c manpage.
  449.  
  450.        $CHILD_ERROR
  451.  
  452.        $?      The status returned by the last pipe close,
  453.                backtick (````````) command, or _s_y_s_t_e_m_(_) operator.  Note
  454.                that this is the status word returned by the
  455.                _w_a_i_t_(_) system call, so the exit value of the
  456.                subprocess is actually ($$$$???? >>>>>>>> 8888).  Thus on many
  457.  
  458.  
  459.  
  460. 23/Jan/96                perl 5.002 with                        7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  467.  
  468.  
  469.                systems, $$$$???? &&&& 222255555555 gives which signal, if any, the
  470.                process died from, and whether there was a core
  471.                dump.  (Mnemonic: similar to sssshhhh and kkkksssshhhh.)
  472.  
  473.        $OS_ERROR
  474.  
  475.        $ERRNO
  476.  
  477.        $!      If used in a numeric context, yields the current
  478.                value of errno, with all the usual caveats.  (This
  479.                means that you shouldn't depend on the value of
  480.                "$$$$!!!!" to be anything in particular unless you've
  481.                gotten a specific error return indicating a system
  482.                error.)  If used in a string context, yields the
  483.                corresponding system error string.  You can assign
  484.                to "$$$$!!!!" in order to set _e_r_r_n_o if, for instance,
  485.                you want "$$$$!!!!" to return the string for error _n, or
  486.                you want to set the exit value for the _d_i_e_(_)
  487.                operator.  (Mnemonic: What just went bang?)
  488.  
  489.        $EVAL_ERROR
  490.  
  491.        $@      The Perl syntax error message from the last _e_v_a_l_(_)
  492.                command.  If null, the last _e_v_a_l_(_) parsed and
  493.                executed correctly (although the operations you
  494.                invoked may have failed in the normal fashion).
  495.                (Mnemonic: Where was the syntax error "at"?)
  496.  
  497.                Note that warning messages are not collected in
  498.                this variable.  You can, however, set up a routine
  499.                to process warnings by setting $$$$SSSSIIIIGGGG{__WARN__}
  500.                below.
  501.  
  502.        $PROCESS_ID
  503.  
  504.        $PID
  505.  
  506.        $$      The process number of the Perl running this
  507.                script.  (Mnemonic: same as shells.)
  508.  
  509.        $REAL_USER_ID
  510.  
  511.        $UID
  512.  
  513.        $<      The real uid of this process.  (Mnemonic: it's the
  514.                uid you came _F_R_O_M, if you're running setuid.)
  515.  
  516.        $EFFECTIVE_USER_ID
  517.  
  518.        $EUID
  519.  
  520.        $>      The effective uid of this process.  Example:
  521.  
  522.  
  523.  
  524.  
  525.  
  526. 23/Jan/96                perl 5.002 with                        8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  533.  
  534.  
  535.                    $$$$<<<< ==== $$$$>>>>;;;;            #### sssseeeetttt rrrreeeeaaaallll ttttoooo eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd
  536.                    (((($$$$<<<<,,,,$$$$>>>>)))) ==== (((($$$$>>>>,,,,$$$$<<<<))));;;;  #### sssswwwwaaaapppp rrrreeeeaaaallll aaaannnndddd eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd
  537.  
  538.                (Mnemonic: it's the uid you went _T_O, if you're
  539.                running setuid.)  Note: "$$$$<<<<" and "$$$$>>>>" can only be
  540.                swapped on machines supporting _s_e_t_r_e_u_i_d_(_).
  541.  
  542.        $REAL_GROUP_ID
  543.  
  544.        $GID
  545.  
  546.        $(      The real gid of this process.  If you are on a
  547.                machine that supports membership in multiple
  548.                groups simultaneously, gives a space separated
  549.                list of groups you are in.  The first number is
  550.                the one returned by _g_e_t_g_i_d_(_), and the subsequent
  551.                ones by _g_e_t_g_r_o_u_p_s_(_), one of which may be the same
  552.                as the first number.  (Mnemonic: parentheses are
  553.                used to _G_R_O_U_P things.  The real gid is the group
  554.                you _L_E_F_T, if you're running setgid.)
  555.  
  556.        $EFFECTIVE_GROUP_ID
  557.  
  558.        $EGID
  559.  
  560.        $)      The effective gid of this process.  If you are on
  561.                a machine that supports membership in multiple
  562.                groups simultaneously, gives a space separated
  563.                list of groups you are in.  The first number is
  564.                the one returned by _g_e_t_e_g_i_d_(_), and the subsequent
  565.                ones by _g_e_t_g_r_o_u_p_s_(_), one of which may be the same
  566.                as the first number.  (Mnemonic: parentheses are
  567.                used to _G_R_O_U_P things.  The effective gid is the
  568.                group that's _R_I_G_H_T for you, if you're running
  569.                setgid.)
  570.  
  571.                Note: "$$$$<<<<", "$$$$>>>>", "$$$$((((" and "$$$$))))" can only be set on
  572.                machines that support the corresponding
  573.                _s_e_t_[_r_e_]_[_u_g_]_i_d_(_) routine.  "$$$$((((" and "$$$$))))" can only
  574.                be swapped on machines supporting _s_e_t_r_e_g_i_d_(_).
  575.                Because Perl doesn't currently use _i_n_i_t_g_r_o_u_p_s_(_),
  576.                you can't set your group vector to multiple
  577.                groups.
  578.  
  579.        $PROGRAM_NAME
  580.  
  581.        $0      Contains the name of the file containing the Perl
  582.                script being executed.  Assigning to "$$$$0000" modifies
  583.                the argument area that the _p_s(1) program sees.
  584.                This is more useful as a way of indicating the
  585.                current program state than it is for hiding the
  586.                program you're running.  (Mnemonic: same as sssshhhh and
  587.                kkkksssshhhh.)
  588.  
  589.  
  590.  
  591.  
  592. 23/Jan/96                perl 5.002 with                        9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  599.  
  600.  
  601.        $[      The index of the first element in an array, and of
  602.                the first character in a substring.  Default is 0,
  603.                but you could set it to 1 to make Perl behave more
  604.                like aaaawwwwkkkk (or Fortran) when subscripting and when
  605.                evaluating the _i_n_d_e_x_(_) and _s_u_b_s_t_r_(_) functions.
  606.                (Mnemonic: [ begins subscripts.)
  607.  
  608.                As of Perl 5, assignment to "$$$$[[[[" is treated as a
  609.                compiler directive, and cannot influence the
  610.                behavior of any other file.  Its use is
  611.                discouraged.
  612.  
  613.        $PERL_VERSION
  614.  
  615.        $]      The string printed out when you say ppppeeeerrrrllll ----vvvv.
  616.                (This is currently _B_R_O_K_E_N).  It can be used to
  617.                determine at the beginning of a script whether the
  618.                perl interpreter executing the script is in the
  619.                right range of versions.  If used in a numeric
  620.                context, returns the version + patchlevel / 1000.
  621.                Example:
  622.  
  623.                    #### sssseeeeeeee iiiiffff ggggeeeettttcccc iiiissss aaaavvvvaaaaiiiillllaaaabbbblllleeee
  624.                    (((($$$$vvvveeeerrrrssssiiiioooonnnn,,,,$$$$ppppaaaattttcccchhhhlllleeeevvvveeeellll)))) ====
  625.                             $$$$]]]] ====~~~~ ////((((\\\\dddd++++\\\\....\\\\dddd++++))))....****\\\\nnnnPPPPaaaattttcccchhhh lllleeeevvvveeeellll:::: ((((\\\\dddd++++))))////;;;;
  626.                    pppprrrriiiinnnntttt SSSSTTTTDDDDEEEERRRRRRRR """"((((NNNNoooo ffffiiiilllleeeennnnaaaammmmeeee ccccoooommmmpppplllleeeettttiiiioooonnnn aaaavvvvaaaaiiiillllaaaabbbblllleeee....))))\\\\nnnn""""
  627.                             iiiiffff $$$$vvvveeeerrrrssssiiiioooonnnn **** 1111000000000000 ++++ $$$$ppppaaaattttcccchhhhlllleeeevvvveeeellll <<<< 2222000011116666;;;;
  628.  
  629.                or, used numerically,
  630.  
  631.                    wwwwaaaarrrrnnnn """"NNNNoooo cccchhhheeeecccckkkkssssuuuummmmmmmmiiiinnnngggg!!!!\\\\nnnn"""" iiiiffff $$$$]]]] <<<< 3333....000011119999;;;;
  632.  
  633.                (Mnemonic: Is this version of perl in the right
  634.                bracket?)
  635.  
  636.        $DEBUGGING
  637.  
  638.        $^D     The current value of the debugging flags.
  639.                (Mnemonic: value of ----DDDD switch.)
  640.  
  641.        $SYSTEM_FD_MAX
  642.  
  643.        $^F     The maximum system file descriptor, ordinarily 2.
  644.                System file descriptors are passed to _e_x_e_c_(_)ed
  645.                processes, while higher file descriptors are not.
  646.                Also, during an _o_p_e_n_(_), system file descriptors
  647.                are preserved even if the _o_p_e_n_(_) fails.  (Ordinary
  648.                file descriptors are closed before the _o_p_e_n_(_) is
  649.                attempted.)  Note that the close-on-exec status of
  650.                a file descriptor will be decided according to the
  651.                value of $$$$^^^^FFFF at the time of the open, not the time
  652.                of the exec.
  653.  
  654.  
  655.  
  656.  
  657.  
  658. 23/Jan/96                perl 5.002 with                       10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  665.  
  666.  
  667.        $INPLACE_EDIT
  668.  
  669.        $^I     The current value of the inplace-edit extension.
  670.                Use uuuunnnnddddeeeeffff to disable inplace editing.  (Mnemonic:
  671.                value of ----iiii switch.)
  672.  
  673.        $PERLDB
  674.  
  675.        $^P     The internal flag that the debugger clears so that
  676.                it doesn't debug itself.  You could conceivable
  677.                disable debugging yourself by clearing it.
  678.  
  679.        $BASETIME
  680.  
  681.        $^T     The time at which the script began running, in
  682.                seconds since the epoch (beginning of 1970).  The
  683.                values returned by the ----MMMM, ----AAAA and ----CCCC filetests are
  684.                based on this value.
  685.  
  686.        $WARNING
  687.  
  688.        $^W     The current value of the warning switch, either
  689.                TRUE or FALSE.  (Mnemonic: related to the ----wwww
  690.                switch.)
  691.  
  692.        $EXECUTABLE_NAME
  693.  
  694.        $^X     The name that the Perl binary itself was executed
  695.                as, from C's aaaarrrrggggvvvv[[[[0000]]]].
  696.  
  697.        $ARGV   contains the name of the current file when reading
  698.                from <>.
  699.  
  700.        @ARGV   The array @@@@AAAARRRRGGGGVVVV contains the command line
  701.                arguments intended for the script.  Note that
  702.                $$$$####AAAARRRRGGGGVVVV is the generally number of arguments minus
  703.                one, since $$$$AAAARRRRGGGGVVVV[[[[0000]]]] is the first argument, _N_O_T the
  704.                command name.  See "$$$$0000" for the command name.
  705.  
  706.        @INC    The array @@@@IIIINNNNCCCC contains the list of places to look
  707.                for Perl scripts to be evaluated by the ddddoooo EEEEXXXXPPPPRRRR,
  708.                rrrreeeeqqqquuuuiiiirrrreeee, or uuuusssseeee constructs.  It initially consists
  709.                of the arguments to any ----IIII command line switches,
  710.                followed by the default Perl library, probably
  711.                "/usr/local/lib/perl", followed by ".", to
  712.                represent the current directory.  If you need to
  713.                modify this at runtime, you should use the uuuusssseeee lllliiiibbbb
  714.                pragma in order to also get the machine-dependent
  715.                library properly loaded:
  716.  
  717.                    uuuusssseeee lllliiiibbbb ''''////mmmmyyyyppppaaaatttthhhh////lllliiiibbbbddddiiiirrrr////'''';;;;
  718.                    uuuusssseeee SSSSoooommmmeeeeMMMMoooodddd;;;;
  719.  
  720.                ====iiiitttteeeemmmm %%%%IIIINNNNCCCC
  721.  
  722.  
  723.  
  724. 23/Jan/96                perl 5.002 with                       11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  731.  
  732.  
  733.                The hash %%%%IIIINNNNCCCC contains entries for each filename
  734.                that has been included via ddddoooo or rrrreeeeqqqquuuuiiiirrrreeee.  The key
  735.                is the filename you specified, and the value is
  736.                the location of the file actually found.  The
  737.                rrrreeeeqqqquuuuiiiirrrreeee command uses this array to determine
  738.                whether a given file has already been included.
  739.  
  740.        $ENV{expr}
  741.                The hash %%%%EEEENNNNVVVV contains your current environment.
  742.                Setting a value in EEEENNNNVVVV changes the environment for
  743.                child processes.
  744.  
  745.        $SIG{expr}
  746.                The hash %%%%SSSSIIIIGGGG is used to set signal handlers for
  747.                various signals.  Example:
  748.  
  749.                    ssssuuuubbbb hhhhaaaannnnddddlllleeeerrrr {{{{       #### 1111sssstttt aaaarrrrgggguuuummmmeeeennnntttt iiiissss ssssiiiiggggnnnnaaaallll nnnnaaaammmmeeee
  750.                        llllooooccccaaaallll(((($$$$ssssiiiigggg)))) ==== @@@@____;;;;
  751.                        pppprrrriiiinnnntttt """"CCCCaaaauuuugggghhhhtttt aaaa SSSSIIIIGGGG$$$$ssssiiiigggg--------sssshhhhuuuuttttttttiiiinnnngggg ddddoooowwwwnnnn\\\\nnnn"""";;;;
  752.                        cccclllloooosssseeee((((LLLLOOOOGGGG))));;;;
  753.                        eeeexxxxiiiitttt((((0000))));;;;
  754.                    }}}}
  755.  
  756.                    $$$$SSSSIIIIGGGG{{{{''''IIIINNNNTTTT''''}}}} ==== ''''hhhhaaaannnnddddlllleeeerrrr'''';;;;
  757.                    $$$$SSSSIIIIGGGG{{{{''''QQQQUUUUIIIITTTT''''}}}} ==== ''''hhhhaaaannnnddddlllleeeerrrr'''';;;;
  758.                    ............
  759.                    $$$$SSSSIIIIGGGG{{{{''''IIIINNNNTTTT''''}}}} ==== ''''DDDDEEEEFFFFAAAAUUUULLLLTTTT'''';;;;    #### rrrreeeessssttttoooorrrreeee ddddeeeeffffaaaauuuulllltttt aaaaccccttttiiiioooonnnn
  760.                    $$$$SSSSIIIIGGGG{{{{''''QQQQUUUUIIIITTTT''''}}}} ==== ''''IIIIGGGGNNNNOOOORRRREEEE'''';;;;    #### iiiiggggnnnnoooorrrreeee SSSSIIIIGGGGQQQQUUUUIIIITTTT
  761.  
  762.                The %%%%SSSSIIIIGGGG array only contains values for the
  763.                signals actually set within the Perl script.  Here
  764.                are some other examples:
  765.  
  766.                    $$$$SSSSIIIIGGGG{{{{PPPPIIIIPPPPEEEE}}}} ==== PPPPlllluuuummmmbbbbeeeerrrr;;;;       #### SSSSCCCCAAAARRRRYYYY!!!!!!!!
  767.                    $$$$SSSSIIIIGGGG{{{{""""PPPPIIIIPPPPEEEE""""}}}} ==== """"PPPPlllluuuummmmbbbbeeeerrrr"""";;;;   #### jjjjuuuusssstttt ffffiiiinnnneeee,,,, aaaassssssssuuuummmmeeeessss mmmmaaaaiiiinnnn::::::::PPPPlllluuuummmmbbbbeeeerrrr
  768.                    $$$$SSSSIIIIGGGG{{{{""""PPPPIIIIPPPPEEEE""""}}}} ==== \\\\&&&&PPPPlllluuuummmmbbbbeeeerrrr;;;;   #### jjjjuuuusssstttt ffffiiiinnnneeee;;;; aaaassssssssuuuummmmeeee ccccuuuurrrrrrrreeeennnntttt PPPPlllluuuummmmbbbbeeeerrrr
  769.                    $$$$SSSSIIIIGGGG{{{{""""PPPPIIIIPPPPEEEE""""}}}} ==== PPPPlllluuuummmmbbbbeeeerrrr(((())));;;;   #### ooooooooppppssss,,,, wwwwhhhhaaaatttt ddddiiiidddd PPPPlllluuuummmmbbbbeeeerrrr(((()))) rrrreeeettttuuuurrrrnnnn????????
  770.  
  771.                The one marked scary is problematic because it's a
  772.                bareword, which means sometimes it's a string
  773.                representing the function, and sometimes it's
  774.                going to call the subroutine call right then and
  775.                there!  Best to be sure and quote it or take a
  776.                reference to it.  *Plumber works too.  See the
  777.                _p_e_r_l_s_u_b_s manpage.
  778.  
  779.                Certain internal hooks can be also set using the
  780.                %%%%SSSSIIIIGGGG hash.  The routine indicated by
  781.                $$$$SSSSIIIIGGGG{__WARN__} is called when a warning message is
  782.                about to be printed.  The warning message is
  783.                passed as the first argument.  The presence of a
  784.                __WARN__ hook causes the ordinary printing of
  785.                warnings to STDERR to be suppressed.  You can use
  786.                this to save warnings in a variable, or turn
  787.  
  788.  
  789.  
  790. 23/Jan/96                perl 5.002 with                       12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. PERLVAR(1)     User Contributed Perl Documentation     PERLVAR(1)
  797.  
  798.  
  799.                warnings into fatal errors, like this:
  800.  
  801.                    llllooooccccaaaallll $$$$SSSSIIIIGGGG{{{{________WWWWAAAARRRRNNNN________}}}} ==== ssssuuuubbbb {{{{ ddddiiiieeee $$$$____[[[[0000]]]] }}}};;;;
  802.                    eeeevvvvaaaallll $$$$pppprrrrooooggggggggiiiieeee;;;;
  803.  
  804.                The routine indicated by $$$$SSSSIIIIGGGG{__DIE__} is called
  805.                when a fatal exception is about to be thrown.  The
  806.                error message is passed as the first argument.
  807.                When a __DIE__ hook routine returns, the exception
  808.                processing continues as it would have in the
  809.                absence of the hook, unless the hook routine
  810.                itself exits via a ggggoooottttoooo, a loop exit, or a _d_i_e_(_).
  811.                The __DIE__ handler is explicitly disabled during
  812.                the call, so that you can die from a __DIE__
  813.                handler.  Similarly for __WARN__.
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856. 23/Jan/96                perl 5.002 with                       13
  857.  
  858.  
  859.