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 / perlfunc.0 < prev    next >
Text File  |  1996-03-02  |  275KB  |  4,555 lines

  1.  
  2.  
  3.  
  4. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  5.  
  6.  
  7. NNNNAAAAMMMMEEEE
  8.        perlfunc - Perl builtin functions
  9.  
  10. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  11.        The functions in this section can serve as terms in an
  12.        expression.  They fall into two major categories: list
  13.        operators and named unary operators.  These differ in
  14.        their precedence relationship with a following comma.
  15.        (See the precedence table in the _p_e_r_l_o_p manpage.)  List
  16.        operators take more than one argument, while unary
  17.        operators can never take more than one argument.  Thus, a
  18.        comma terminates the argument of a unary operator, but
  19.        merely separates the arguments of a list operator.  A
  20.        unary operator generally provides a scalar context to its
  21.        argument, while a list operator may provide either scalar
  22.        and list contexts for its arguments.  If it does both, the
  23.        scalar arguments will be first, and the list argument will
  24.        follow.  (Note that there can only ever be one list
  25.        argument.)  For instance, _s_p_l_i_c_e_(_) has three scalar
  26.        arguments followed by a list.
  27.  
  28.        In the syntax descriptions that follow, list operators
  29.        that expect a list (and provide list context for the
  30.        elements of the list) are shown with LIST as an argument.
  31.        Such a list may consist of any combination of scalar
  32.        arguments or list values; the list values will be included
  33.        in the list as if each individual element were
  34.        interpolated at that point in the list, forming a longer
  35.        single-dimensional list value.  Elements of the LIST
  36.        should be separated by commas.
  37.  
  38.        Any function in the list below may be used either with or
  39.        without parentheses around its arguments.  (The syntax
  40.        descriptions omit the parens.)  If you use the parens, the
  41.        simple (but occasionally surprising) rule is this: It
  42.        _L_O_O_K_S like a function, therefore it _I_S a function, and
  43.        precedence doesn't matter.  Otherwise it's a list operator
  44.        or unary operator, and precedence does matter.  And
  45.        whitespace between the function and left parenthesis
  46.        doesn't count--so you need to be careful sometimes:
  47.  
  48.            pppprrrriiiinnnntttt 1111++++2222++++3333;;;;        #### PPPPrrrriiiinnnnttttssss 6666....
  49.            pppprrrriiiinnnntttt((((1111++++2222)))) ++++ 3333;;;;     #### PPPPrrrriiiinnnnttttssss 3333....
  50.            pppprrrriiiinnnntttt ((((1111++++2222))))++++3333;;;;      #### AAAAllllssssoooo pppprrrriiiinnnnttttssss 3333!!!!
  51.            pppprrrriiiinnnntttt ++++((((1111++++2222))))++++3333;;;;     #### PPPPrrrriiiinnnnttttssss 6666....
  52.            pppprrrriiiinnnntttt ((((((((1111++++2222))))++++3333))));;;;    #### PPPPrrrriiiinnnnttttssss 6666....
  53.  
  54.        If you run Perl with the ----wwww switch it can warn you about
  55.        this.  For example, the third line above produces:
  56.  
  57.            pppprrrriiiinnnntttt ((((............)))) iiiinnnntttteeeerrrrpppprrrreeeetttteeeedddd aaaassss ffffuuuunnnnccccttttiiiioooonnnn aaaatttt ---- lllliiiinnnneeee 1111....
  58.            UUUUsssseeeelllleeeessssssss uuuusssseeee ooooffff iiiinnnntttteeeeggggeeeerrrr aaaaddddddddiiiittttiiiioooonnnn iiiinnnn vvvvooooiiiidddd ccccoooonnnntttteeeexxxxtttt aaaatttt ---- lllliiiinnnneeee 1111....
  59.  
  60.        For functions that can be used in either a scalar or list
  61.  
  62.  
  63.  
  64. 16/Feb/96                perl 5.002 with                        1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  71.  
  72.  
  73.        context, non-abortive failure is generally indicated in a
  74.        scalar context by returning the undefined value, and in a
  75.        list context by returning the null list.
  76.  
  77.        Remember the following rule:
  78.  
  79.                _T_H_E_R_E _I_S _N_O _G_E_N_E_R_A_L _R_U_L_E _F_O_R _C_O_N_V_E_R_T_I_N_G _A _L_I_S_T
  80.                _I_N_T_O _A _S_C_A_L_A_R_!
  81.  
  82.        Each operator and function decides which sort of value it
  83.        would be most appropriate to return in a scalar context.
  84.        Some operators return the length of the list that would
  85.        have been returned in a list context.  Some operators
  86.        return the first value in the list.  Some operators return
  87.        the last value in the list.  Some operators return a count
  88.        of successful operations.  In general, they do what you
  89.        want, unless you want consistency.
  90.  
  91.        PPPPeeeerrrrllll FFFFuuuunnnnccccttttiiiioooonnnnssss bbbbyyyy CCCCaaaatttteeeeggggoooorrrryyyy
  92.  
  93.        Here are Perl's functions (including things that look like
  94.        functions, like some of the keywords and named operators)
  95.        arranged by category.  Some functions appear in more than
  96.        one place.
  97.  
  98.        Functions for SCALARs or strings
  99.             chomp, chop, chr, crypt, hex, index, lc, lcfirst,
  100.             length, oct, ord, pack, q/STRING/, qq/STRING/,
  101.             reverse, rindex, sprintf, substr, tr///, uc, ucfirst,
  102.             y///
  103.  
  104.        Regular expressions and pattern matching
  105.             m//, pos, quotemeta, s///, split, study
  106.  
  107.        Numeric functions
  108.             abs, atan2, cos, exp, hex, int, log, oct, rand, sin,
  109.             sqrt, srand
  110.  
  111.        Functions for real @ARRAYs
  112.             pop, push, shift, splice, unshift
  113.  
  114.        Functions for list data
  115.             grep, join, map, qw/STRING/, reverse, sort, unpack
  116.  
  117.        Functions for real %HASHes
  118.             delete, each, exists, keys, values
  119.  
  120.        Input and output functions
  121.             binmode, close, closedir, dbmclose, dbmopen, die,
  122.             eof, fileno, flock, format, getc, print, printf,
  123.             read, readdir, rewinddir, seek, seekdir, select,
  124.             syscall, sysread, syswrite, tell, telldir, truncate,
  125.             warn, write
  126.  
  127.  
  128.  
  129.  
  130. 16/Feb/96                perl 5.002 with                        2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  137.  
  138.  
  139.        Functions for fixed length data or records
  140.             pack, read, syscall, sysread, syswrite, unpack, vec
  141.  
  142.        Functions for filehandles, files, or directories
  143.             -X, chdir, chmod, chown, chroot, fcntl, glob, ioctl,
  144.             link, lstat, mkdir, open, opendir, readlink, rename,
  145.             rmdir, stat, symlink, umask, unlink, utime
  146.  
  147.        Keywords related to the control flow of your perl program
  148.             caller, continue, die, do, dump, eval, exit, goto,
  149.             last, next, redo, return, sub, wantarray
  150.  
  151.        Keywords related to scoping
  152.             caller, import, local, my, package, use
  153.  
  154.        Miscellaneous functions
  155.             defined, dump, eval, formline, local, my, reset,
  156.             scalar, undef, wantarray
  157.  
  158.        Functions for processes and process groups
  159.             alarm, exec, fork, getpgrp, getppid, getpriority,
  160.             kill, pipe, qx/STRING/, setpgrp, setpriority, sleep,
  161.             system, times, wait, waitpid
  162.  
  163.        Keywords related to perl modules
  164.             do, import, no, package, require, use
  165.  
  166.        Keywords related to classes and object-orientedness
  167.             bless, dbmclose, dbmopen, package, ref, tie, tied,
  168.             untie, use
  169.  
  170.        Low-level socket functions
  171.             accept, bind, connect, getpeername, getsockname,
  172.             getsockopt, listen, recv, send, setsockopt, shutdown,
  173.             socket, socketpair
  174.  
  175.        System V interprocess communication functions
  176.             msgctl, msgget, msgrcv, msgsnd, semctl, semget,
  177.             semop, shmctl, shmget, shmread, shmwrite
  178.  
  179.        Fetching user and group info
  180.             endgrent, endhostent, endnetent, endpwent, getgrent,
  181.             getgrgid, getgrnam, getlogin, getpwent, getpwnam,
  182.             getpwuid, setgrent, setpwent
  183.  
  184.        Fetching network info
  185.             endprotoent, endservent, gethostbyaddr,
  186.             gethostbyname, gethostent, getnetbyaddr,
  187.             getnetbyname, getnetent, getprotobyname,
  188.             getprotobynumber, getprotoent, getservbyname,
  189.             getservbyport, getservent, sethostent, setnetent,
  190.             setprotoent, setservent
  191.  
  192.  
  193.  
  194.  
  195.  
  196. 16/Feb/96                perl 5.002 with                        3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  203.  
  204.  
  205.        Time-related functions
  206.             gmtime, localtime, time, times
  207.  
  208.        AAAAllllpppphhhhaaaabbbbeeeettttiiiiccccaaaallll LLLLiiiissssttttiiiinnnngggg ooooffff PPPPeeeerrrrllll FFFFuuuunnnnccccttttiiiioooonnnnssss
  209.  
  210.  
  211.        -X FILEHANDLE
  212.  
  213.        -X EXPR
  214.  
  215.        -X      A file test, where X is one of the letters listed
  216.                below.  This unary operator takes one argument,
  217.                either a filename or a filehandle, and tests the
  218.                associated file to see if something is true about
  219.                it.  If the argument is omitted, tests $$$$____, except
  220.                for ----tttt, which tests STDIN.  Unless otherwise
  221.                documented, it returns 1111 for TRUE and '''''''' for
  222.                FALSE, or the undefined value if the file doesn't
  223.                exist.  Despite the funny names, precedence is the
  224.                same as any other named unary operator, and the
  225.                argument may be parenthesized like any other unary
  226.                operator.  The operator may be any of:
  227.  
  228.                    ----rrrr  FFFFiiiilllleeee iiiissss rrrreeeeaaaaddddaaaabbbblllleeee bbbbyyyy eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd////ggggiiiidddd....
  229.                    ----wwww  FFFFiiiilllleeee iiiissss wwwwrrrriiiittttaaaabbbblllleeee bbbbyyyy eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd////ggggiiiidddd....
  230.                    ----xxxx  FFFFiiiilllleeee iiiissss eeeexxxxeeeeccccuuuuttttaaaabbbblllleeee bbbbyyyy eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd////ggggiiiidddd....
  231.                    ----oooo  FFFFiiiilllleeee iiiissss oooowwwwnnnneeeedddd bbbbyyyy eeeeffffffffeeeeccccttttiiiivvvveeee uuuuiiiidddd....
  232.  
  233.                    ----RRRR  FFFFiiiilllleeee iiiissss rrrreeeeaaaaddddaaaabbbblllleeee bbbbyyyy rrrreeeeaaaallll uuuuiiiidddd////ggggiiiidddd....
  234.                    ----WWWW  FFFFiiiilllleeee iiiissss wwwwrrrriiiittttaaaabbbblllleeee bbbbyyyy rrrreeeeaaaallll uuuuiiiidddd////ggggiiiidddd....
  235.                    ----XXXX  FFFFiiiilllleeee iiiissss eeeexxxxeeeeccccuuuuttttaaaabbbblllleeee bbbbyyyy rrrreeeeaaaallll uuuuiiiidddd////ggggiiiidddd....
  236.                    ----OOOO  FFFFiiiilllleeee iiiissss oooowwwwnnnneeeedddd bbbbyyyy rrrreeeeaaaallll uuuuiiiidddd....
  237.  
  238.                    ----eeee  FFFFiiiilllleeee eeeexxxxiiiissssttttssss....
  239.                    ----zzzz  FFFFiiiilllleeee hhhhaaaassss zzzzeeeerrrroooo ssssiiiizzzzeeee....
  240.                    ----ssss  FFFFiiiilllleeee hhhhaaaassss nnnnoooonnnn----zzzzeeeerrrroooo ssssiiiizzzzeeee ((((rrrreeeettttuuuurrrrnnnnssss ssssiiiizzzzeeee))))....
  241.  
  242.                    ----ffff  FFFFiiiilllleeee iiiissss aaaa ppppllllaaaaiiiinnnn ffffiiiilllleeee....
  243.                    ----dddd  FFFFiiiilllleeee iiiissss aaaa ddddiiiirrrreeeeccccttttoooorrrryyyy....
  244.                    ----llll  FFFFiiiilllleeee iiiissss aaaa ssssyyyymmmmbbbboooolllliiiicccc lllliiiinnnnkkkk....
  245.                    ----pppp  FFFFiiiilllleeee iiiissss aaaa nnnnaaaammmmeeeedddd ppppiiiippppeeee ((((FFFFIIIIFFFFOOOO))))....
  246.                    ----SSSS  FFFFiiiilllleeee iiiissss aaaa ssssoooocccckkkkeeeetttt....
  247.                    ----bbbb  FFFFiiiilllleeee iiiissss aaaa bbbblllloooocccckkkk ssssppppeeeecccciiiiaaaallll ffffiiiilllleeee....
  248.                    ----cccc  FFFFiiiilllleeee iiiissss aaaa cccchhhhaaaarrrraaaacccctttteeeerrrr ssssppppeeeecccciiiiaaaallll ffffiiiilllleeee....
  249.                    ----tttt  FFFFiiiilllleeeehhhhaaaannnnddddlllleeee iiiissss ooooppppeeeennnneeeedddd ttttoooo aaaa ttttttttyyyy....
  250.  
  251.                    ----uuuu  FFFFiiiilllleeee hhhhaaaassss sssseeeettttuuuuiiiidddd bbbbiiiitttt sssseeeetttt....
  252.                    ----gggg  FFFFiiiilllleeee hhhhaaaassss sssseeeettttggggiiiidddd bbbbiiiitttt sssseeeetttt....
  253.                    ----kkkk  FFFFiiiilllleeee hhhhaaaassss ssssttttiiiicccckkkkyyyy bbbbiiiitttt sssseeeetttt....
  254.  
  255.                    ----TTTT  FFFFiiiilllleeee iiiissss aaaa tttteeeexxxxtttt ffffiiiilllleeee....
  256.                    ----BBBB  FFFFiiiilllleeee iiiissss aaaa bbbbiiiinnnnaaaarrrryyyy ffffiiiilllleeee ((((ooooppppppppoooossssiiiitttteeee ooooffff ----TTTT))))....
  257.  
  258.  
  259.  
  260.  
  261.  
  262. 16/Feb/96                perl 5.002 with                        4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  269.  
  270.  
  271.                    ----MMMM  AAAAggggeeee ooooffff ffffiiiilllleeee iiiinnnn ddddaaaayyyyssss wwwwhhhheeeennnn ssssccccrrrriiiipppptttt ssssttttaaaarrrrtttteeeedddd....
  272.                    ----AAAA  SSSSaaaammmmeeee ffffoooorrrr aaaacccccccceeeessssssss ttttiiiimmmmeeee....
  273.                    ----CCCC  SSSSaaaammmmeeee ffffoooorrrr iiiinnnnooooddddeeee cccchhhhaaaannnnggggeeee ttttiiiimmmmeeee....
  274.  
  275.                The interpretation of the file permission
  276.                operators ----rrrr, ----RRRR, ----wwww, ----WWWW, ----xxxx and ----XXXX is based
  277.                solely on the mode of the file and the uids and
  278.                gids of the user.  There may be other reasons you
  279.                can't actually read, write or execute the file.
  280.                Also note that, for the superuser, ----rrrr, ----RRRR, ----wwww and
  281.                ----WWWW always return 1, and ----xxxx and ----XXXX return 1 if any
  282.                execute bit is set in the mode.  Scripts run by
  283.                the superuser may thus need to do a _s_t_a_t_(_) in
  284.                order to determine the actual mode of the file, or
  285.                temporarily set the uid to something else.
  286.  
  287.                Example:
  288.  
  289.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  290.                        cccchhhhoooopppp;;;;
  291.                        nnnneeeexxxxtttt uuuunnnnlllleeeessssssss ----ffff $$$$____;;;;      #### iiiiggggnnnnoooorrrreeee ssssppppeeeecccciiiiaaaallllssss
  292.                        ............
  293.                    }}}}
  294.  
  295.                Note that ----ssss////aaaa////bbbb//// does not do a negated
  296.                substitution.  Saying ----eeeexxxxpppp(((($$$$ffffoooooooo)))) still works as
  297.                expected, however--only single letters following a
  298.                minus are interpreted as file tests.
  299.  
  300.                The ----TTTT and ----BBBB switches work as follows.  The first
  301.                block or so of the file is examined for odd
  302.                characters such as strange control codes or
  303.                characters with the high bit set.  If too many odd
  304.                characters (>30%) are found, it's a ----BBBB file,
  305.                otherwise it's a ----TTTT file.  Also, any file
  306.                containing null in the first block is considered a
  307.                binary file.  If ----TTTT or ----BBBB is used on a filehandle,
  308.                the current stdio buffer is examined rather than
  309.                the first block.  Both ----TTTT and ----BBBB return TRUE on a
  310.                null file, or a file at EOF when testing a
  311.                filehandle.  Because you have to read a file to do
  312.                the ----TTTT test, on most occasions you want to use a
  313.                ----ffff against the file first, as in nnnneeeexxxxtttt uuuunnnnlllleeeessssssss ----ffff
  314.                $$$$ffffiiiilllleeee &&&&&&&& ----TTTT $$$$ffffiiiilllleeee.
  315.  
  316.                If any of the file tests (or either the _s_t_a_t_(_) or
  317.                _l_s_t_a_t_(_) operators) are given the special
  318.                filehandle consisting of a solitary underline,
  319.                then the stat structure of the previous file test
  320.                (or stat operator) is used, saving a system call.
  321.                (This doesn't work with ----tttt, and you need to
  322.                remember that _l_s_t_a_t_(_) and ----llll will leave values in
  323.                the stat structure for the symbolic link, not the
  324.                real file.)  Example:
  325.  
  326.  
  327.  
  328. 16/Feb/96                perl 5.002 with                        5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  335.  
  336.  
  337.                    pppprrrriiiinnnntttt """"CCCCaaaannnn ddddoooo....\\\\nnnn"""" iiiiffff ----rrrr $$$$aaaa |||||||| ----wwww ____ |||||||| ----xxxx ____;;;;
  338.  
  339.                    ssssttttaaaatttt(((($$$$ffffiiiilllleeeennnnaaaammmmeeee))));;;;
  340.                    pppprrrriiiinnnntttt """"RRRReeeeaaaaddddaaaabbbblllleeee\\\\nnnn"""" iiiiffff ----rrrr ____;;;;
  341.                    pppprrrriiiinnnntttt """"WWWWrrrriiiittttaaaabbbblllleeee\\\\nnnn"""" iiiiffff ----wwww ____;;;;
  342.                    pppprrrriiiinnnntttt """"EEEExxxxeeeeccccuuuuttttaaaabbbblllleeee\\\\nnnn"""" iiiiffff ----xxxx ____;;;;
  343.                    pppprrrriiiinnnntttt """"SSSSeeeettttuuuuiiiidddd\\\\nnnn"""" iiiiffff ----uuuu ____;;;;
  344.                    pppprrrriiiinnnntttt """"SSSSeeeettttggggiiiidddd\\\\nnnn"""" iiiiffff ----gggg ____;;;;
  345.                    pppprrrriiiinnnntttt """"SSSSttttiiiicccckkkkyyyy\\\\nnnn"""" iiiiffff ----kkkk ____;;;;
  346.                    pppprrrriiiinnnntttt """"TTTTeeeexxxxtttt\\\\nnnn"""" iiiiffff ----TTTT ____;;;;
  347.                    pppprrrriiiinnnntttt """"BBBBiiiinnnnaaaarrrryyyy\\\\nnnn"""" iiiiffff ----BBBB ____;;;;
  348.  
  349.  
  350.        abs VALUE
  351.                Returns the absolute value of its argument.
  352.  
  353.        accept NEWSOCKET,GENERICSOCKET
  354.                Accepts an incoming socket connect, just as the
  355.                _a_c_c_e_p_t(2) system call does.  Returns the packed
  356.                address if it succeeded, FALSE otherwise.  See
  357.                example in the section on _S_o_c_k_e_t_s_: _C_l_i_e_n_t_/_S_e_r_v_e_r
  358.                _C_o_m_m_u_n_i_c_a_t_i_o_n in the _p_e_r_l_i_p_c manpage.
  359.  
  360.        alarm SECONDS
  361.                Arranges to have a SIGALRM delivered to this
  362.                process after the specified number of seconds have
  363.                elapsed.  (On some machines, unfortunately, the
  364.                elapsed time may be up to one second less than you
  365.                specified because of how seconds are counted.)
  366.                Only one timer may be counting at once.  Each call
  367.                disables the previous timer, and an argument of 0
  368.                may be supplied to cancel the previous timer
  369.                without starting a new one.  The returned value is
  370.                the amount of time remaining on the previous
  371.                timer.
  372.  
  373.                For delays of finer granularity than one second,
  374.                you may use Perl's _s_y_s_c_a_l_l_(_) interface to access
  375.                _s_e_t_i_t_i_m_e_r(2) if your system supports it, or else
  376.                see the sssseeeelllleeeecccctttt(((()))) entry elsewhere in this
  377.                documentbelow.  It is not advised to intermix
  378.                _a_l_a_r_m_(_) and _s_l_e_e_p_(_) calls.
  379.  
  380.        atan2 Y,X
  381.                Returns the arctangent of Y/X in the range -pi to
  382.                pi.
  383.  
  384.        bind SOCKET,NAME
  385.                Binds a network address to a socket, just as the
  386.                bind system call does.  Returns TRUE if it
  387.                succeeded, FALSE otherwise.  NAME should be a
  388.                packed address of the appropriate type for the
  389.                socket.  See the examples in the section on
  390.                _S_o_c_k_e_t_s_: _C_l_i_e_n_t_/_S_e_r_v_e_r _C_o_m_m_u_n_i_c_a_t_i_o_n in the
  391.  
  392.  
  393.  
  394. 16/Feb/96                perl 5.002 with                        6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  401.  
  402.  
  403.                _p_e_r_l_i_p_c manpage.
  404.  
  405.        binmode FILEHANDLE
  406.                Arranges for the file to be read or written in
  407.                "binary" mode in operating systems that
  408.                distinguish between binary and text files.  Files
  409.                that are not in binary mode have CR LF sequences
  410.                translated to LF on input and LF translated to CR
  411.                LF on output.  Binmode has no effect under Unix;
  412.                in DOS and similarly archaic systems, it may be
  413.                imperative--otherwise your DOS-damaged C library
  414.                may mangle your file.  The key distinction between
  415.                systems that need binmode and those that don't is
  416.                their text file formats.  Systems like Unix and
  417.                Plan9 that delimit lines with a single character,
  418.                and that encode that character in C as '\n', do
  419.                not need bbbbiiiinnnnmmmmooooddddeeee.  The rest need it.  If
  420.                FILEHANDLE is an expression, the value is taken as
  421.                the name of the filehandle.
  422.  
  423.        bless REF,CLASSNAME
  424.  
  425.        bless REF
  426.                This function tells the referenced object (passed
  427.                as REF) that it is now an object in the CLASSNAME
  428.                package--or the current package if no CLASSNAME is
  429.                specified, which is often the case.  It returns
  430.                the reference for convenience, since a _b_l_e_s_s_(_) is
  431.                often the last thing in a constructor.  Always use
  432.                the two-argument version if the function doing the
  433.                blessing might be inherited by a derived class.
  434.                See the _p_e_r_l_o_b_j manpage for more about the
  435.                blessing (and blessings) of objects.
  436.  
  437.        caller EXPR
  438.  
  439.        caller  Returns the context of the current subroutine
  440.                call.  In a scalar context, returns TRUE if there
  441.                is a caller, that is, if we're in a subroutine or
  442.                _e_v_a_l_(_) or _r_e_q_u_i_r_e_(_), and FALSE otherwise.  In a
  443.                list context, returns
  444.  
  445.                    (((($$$$ppppaaaacccckkkkaaaaggggeeee,,,, $$$$ffffiiiilllleeeennnnaaaammmmeeee,,,, $$$$lllliiiinnnneeee)))) ==== ccccaaaalllllllleeeerrrr;;;;
  446.  
  447.                With EXPR, it returns some extra information that
  448.                the debugger uses to print a stack trace.  The
  449.                value of EXPR indicates how many call frames to go
  450.                back before the current one.
  451.  
  452.                    (((($$$$ppppaaaacccckkkkaaaaggggeeee,,,, $$$$ffffiiiilllleeeennnnaaaammmmeeee,,,, $$$$lllliiiinnnneeee,,,,
  453.                     $$$$ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee,,,, $$$$hhhhaaaassssaaaarrrrggggssss,,,, $$$$wwwwaaaannnnttttaaaarrrrggggssss)))) ==== ccccaaaalllllllleeeerrrr(((($$$$iiii))));;;;
  454.  
  455.                Furthermore, when called from within the DB
  456.                package, caller returns more detailed information:
  457.  
  458.  
  459.  
  460. 16/Feb/96                perl 5.002 with                        7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  467.  
  468.  
  469.                it sets the list variable @@@@DDDDBBBB::::::::aaaarrrrggggssss to be the
  470.                arguments with which that subroutine was invoked.
  471.  
  472.        chdir EXPR
  473.                Changes the working directory to EXPR, if
  474.                possible.  If EXPR is omitted, changes to home
  475.                directory.  Returns TRUE upon success, FALSE
  476.                otherwise.  See example under _d_i_e_(_).
  477.  
  478.        chmod LIST
  479.                Changes the permissions of a list of files.  The
  480.                first element of the list must be the numerical
  481.                mode, which should probably be an octal number.
  482.                Returns the number of files successfully changed.
  483.  
  484.                    $$$$ccccnnnntttt ==== cccchhhhmmmmoooodddd 0000777755555555,,,, ''''ffffoooooooo'''',,,, ''''bbbbaaaarrrr'''';;;;
  485.                    cccchhhhmmmmoooodddd 0000777755555555,,,, @@@@eeeexxxxeeeeccccuuuuttttaaaabbbblllleeeessss;;;;
  486.  
  487.  
  488.        chomp VARIABLE
  489.  
  490.        chomp LIST
  491.  
  492.        chomp   This is a slightly safer version of chop (see
  493.                below).  It removes any line ending that
  494.                corresponds to the current value of $$$$//// (also known
  495.                as $$$$IIIINNNNPPPPUUUUTTTT____RRRREEEECCCCOOOORRRRDDDD____SSSSEEEEPPPPAAAARRRRAAAATTTTOOOORRRR in the EEEEnnnngggglllliiiisssshhhh module).
  496.                It returns the number of characters removed.  It's
  497.                often used to remove the newline from the end of
  498.                an input record when you're worried that the final
  499.                record may be missing its newline.  When in
  500.                paragraph mode ($$$$//// ==== """"""""), it removes all trailing
  501.                newlines from the string.  If VARIABLE is omitted,
  502.                it chomps $$$$____.  Example:
  503.  
  504.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  505.                        cccchhhhoooommmmpppp;;;;  #### aaaavvvvooooiiiidddd \\\\nnnn oooonnnn llllaaaasssstttt ffffiiiieeeelllldddd
  506.                        @@@@aaaarrrrrrrraaaayyyy ==== sssspppplllliiiitttt((((////::::////))));;;;
  507.                        ............
  508.                    }}}}
  509.  
  510.                You can actually chomp anything that's an lvalue,
  511.                including an assignment:
  512.  
  513.                    cccchhhhoooommmmpppp(((($$$$ccccwwwwdddd ==== ````ppppwwwwdddd````))));;;;
  514.                    cccchhhhoooommmmpppp(((($$$$aaaannnnsssswwwweeeerrrr ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>))));;;;
  515.  
  516.                If you chomp a list, each element is chomped, and
  517.                the total number of characters removed is
  518.                returned.
  519.  
  520.        chop VARIABLE
  521.  
  522.  
  523.  
  524.  
  525.  
  526. 16/Feb/96                perl 5.002 with                        8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  533.  
  534.  
  535.        chop LIST
  536.  
  537.        chop    Chops off the last character of a string and
  538.                returns the character chopped.  It's used
  539.                primarily to remove the newline from the end of an
  540.                input record, but is much more efficient than
  541.                ssss////\\\\nnnn//////// because it neither scans nor copies the
  542.                string.  If VARIABLE is omitted, chops $$$$____.
  543.                Example:
  544.  
  545.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  546.                        cccchhhhoooopppp;;;;   #### aaaavvvvooooiiiidddd \\\\nnnn oooonnnn llllaaaasssstttt ffffiiiieeeelllldddd
  547.                        @@@@aaaarrrrrrrraaaayyyy ==== sssspppplllliiiitttt((((////::::////))));;;;
  548.                        ............
  549.                    }}}}
  550.  
  551.                You can actually chop anything that's an lvalue,
  552.                including an assignment:
  553.  
  554.                    cccchhhhoooopppp(((($$$$ccccwwwwdddd ==== ````ppppwwwwdddd````))));;;;
  555.                    cccchhhhoooopppp(((($$$$aaaannnnsssswwwweeeerrrr ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>))));;;;
  556.  
  557.                If you chop a list, each element is chopped.  Only
  558.                the value of the last chop is returned.
  559.  
  560.                Note that chop returns the last character.  To
  561.                return all but the last character, use
  562.                ssssuuuubbbbssssttttrrrr(((($$$$ssssttttrrrriiiinnnngggg,,,, 0000,,,, ----1111)))).
  563.  
  564.        chown LIST
  565.                Changes the owner (and group) of a list of files.
  566.                The first two elements of the list must be the
  567.                _N_U_M_E_R_I_C_A_L uid and gid, in that order.  Returns the
  568.                number of files successfully changed.
  569.  
  570.                    $$$$ccccnnnntttt ==== cccchhhhoooowwwwnnnn $$$$uuuuiiiidddd,,,, $$$$ggggiiiidddd,,,, ''''ffffoooooooo'''',,,, ''''bbbbaaaarrrr'''';;;;
  571.                    cccchhhhoooowwwwnnnn $$$$uuuuiiiidddd,,,, $$$$ggggiiiidddd,,,, @@@@ffffiiiilllleeeennnnaaaammmmeeeessss;;;;
  572.  
  573.                Here's an example that looks up non-numeric uids
  574.                in the passwd file:
  575.  
  576.                    pppprrrriiiinnnntttt """"UUUUsssseeeerrrr:::: """";;;;
  577.                    cccchhhhoooopppp(((($$$$uuuusssseeeerrrr ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>))));;;;
  578.                    pppprrrriiiinnnntttt """"FFFFiiiilllleeeessss:::: """"
  579.                    cccchhhhoooopppp(((($$$$ppppaaaatttttttteeeerrrrnnnn ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>))));;;;
  580.  
  581.                    (((($$$$llllooooggggiiiinnnn,,,,$$$$ppppaaaassssssss,,,,$$$$uuuuiiiidddd,,,,$$$$ggggiiiidddd)))) ==== ggggeeeettttppppwwwwnnnnaaaammmm(((($$$$uuuusssseeeerrrr))))
  582.                        oooorrrr ddddiiiieeee """"$$$$uuuusssseeeerrrr nnnnooootttt iiiinnnn ppppaaaasssssssswwwwdddd ffffiiiilllleeee"""";;;;
  583.  
  584.                    @@@@aaaarrrryyyy ==== <<<<$$$${{{{ppppaaaatttttttteeeerrrrnnnn}}}}>>>>;;;;        #### eeeexxxxppppaaaannnndddd ffffiiiilllleeeennnnaaaammmmeeeessss
  585.                    cccchhhhoooowwwwnnnn $$$$uuuuiiiidddd,,,, $$$$ggggiiiidddd,,,, @@@@aaaarrrryyyy;;;;
  586.  
  587.                On most systems, you are not allowed to change the
  588.                ownership of the file unless you're the superuser,
  589.  
  590.  
  591.  
  592. 16/Feb/96                perl 5.002 with                        9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  599.  
  600.  
  601.                although you should be able to change the group to
  602.                any of your secondary groups.  On insecure
  603.                systems, these restrictions may be relaxed, but
  604.                this is not a portable assumption.
  605.  
  606.        chr NUMBER
  607.                Returns the character represented by that NUMBER
  608.                in the character set.  For example, cccchhhhrrrr((((66665555)))) is "A"
  609.                in ASCII.
  610.  
  611.        chroot FILENAME
  612.                This function works as the system call by the same
  613.                name: it makes the named directory the new root
  614.                directory for all further pathnames that begin
  615.                with a "/" by your process and all of its
  616.                children.  (It doesn't change your current working
  617.                directory is unaffected.)  For security reasons,
  618.                this call is restricted to the superuser.  If
  619.                FILENAME is omitted, does chroot to $$$$____.
  620.  
  621.        close FILEHANDLE
  622.                Closes the file or pipe associated with the file
  623.                handle, returning TRUE only if stdio successfully
  624.                flushes buffers and closes the system file
  625.                descriptor.  You don't have to close FILEHANDLE if
  626.                you are immediately going to do another _o_p_e_n_(_) on
  627.                it, since _o_p_e_n_(_) will close it for you.  (See
  628.                _o_p_e_n_(_).)  However, an explicit close on an input
  629.                file resets the line counter ($.), while the
  630.                implicit close done by _o_p_e_n_(_) does not.  Also,
  631.                closing a pipe will wait for the process executing
  632.                on the pipe to complete, in case you want to look
  633.                at the output of the pipe afterwards.  Closing a
  634.                pipe explicitly also puts the status value of the
  635.                command into $$$$????.  Example:
  636.  
  637.                    ooooppppeeeennnn((((OOOOUUUUTTTTPPPPUUUUTTTT,,,, ''''||||ssssoooorrrrtttt >>>>ffffoooooooo''''))));;;; #### ppppiiiippppeeee ttttoooo ssssoooorrrrtttt
  638.                    ............                         #### pppprrrriiiinnnntttt ssssttttuuuuffffffff ttttoooo oooouuuuttttppppuuuutttt
  639.                    cccclllloooosssseeee OOOOUUUUTTTTPPPPUUUUTTTT;;;;               #### wwwwaaaaiiiitttt ffffoooorrrr ssssoooorrrrtttt ttttoooo ffffiiiinnnniiiisssshhhh
  640.                    ooooppppeeeennnn((((IIIINNNNPPPPUUUUTTTT,,,, ''''ffffoooooooo''''))));;;;         #### ggggeeeetttt ssssoooorrrrtttt''''ssss rrrreeeessssuuuullllttttssss
  641.  
  642.                FILEHANDLE may be an expression whose value gives
  643.                the real filehandle name.
  644.  
  645.        closedir DIRHANDLE
  646.                Closes a directory opened by _o_p_e_n_d_i_r_(_).
  647.  
  648.        connect SOCKET,NAME
  649.                Attempts to connect to a remote socket, just as
  650.                the connect system call does.  Returns TRUE if it
  651.                succeeded, FALSE otherwise.  NAME should be a
  652.                packed address of the appropriate type for the
  653.                socket.  See the examples in the section on
  654.                _S_o_c_k_e_t_s_: _C_l_i_e_n_t_/_S_e_r_v_e_r _C_o_m_m_u_n_i_c_a_t_i_o_n in the
  655.  
  656.  
  657.  
  658. 16/Feb/96                perl 5.002 with                       10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  665.  
  666.  
  667.                _p_e_r_l_i_p_c manpage.
  668.  
  669.        continue BLOCK
  670.                Actually a flow control statement rather than a
  671.                function.  If there is a ccccoooonnnnttttiiiinnnnuuuueeee BLOCK attached
  672.                to a BLOCK (typically in a wwwwhhhhiiiilllleeee or ffffoooorrrreeeeaaaacccchhhh), it
  673.                is always executed just before the conditional is
  674.                about to be evaluated again, just like the third
  675.                part of a ffffoooorrrr loop in C.  Thus it can be used to
  676.                increment a loop variable, even when the loop has
  677.                been continued via the nnnneeeexxxxtttt statement (which is
  678.                similar to the C ccccoooonnnnttttiiiinnnnuuuueeee statement).
  679.  
  680.        cos EXPR
  681.                Returns the cosine of EXPR (expressed in radians).
  682.                If EXPR is omitted takes cosine of $$$$____.
  683.  
  684.        crypt PLAINTEXT,SALT
  685.                Encrypts a string exactly like the _c_r_y_p_t(3)
  686.                function in the C library (assuming that you
  687.                actually have a version there that has not been
  688.                extirpated as a potential munition).  This can
  689.                prove useful for checking the password file for
  690.                lousy passwords, amongst other things.  Only the
  691.                guys wearing white hats should do this.
  692.  
  693.                Here's an example that makes sure that whoever
  694.                runs this program knows their own password:
  695.  
  696.                    $$$$ppppwwwwdddd ==== ((((ggggeeeettttppppwwwwuuuuiiiidddd(((($$$$<<<<))))))))[[[[1111]]]];;;;
  697.                    $$$$ssssaaaalllltttt ==== ssssuuuubbbbssssttttrrrr(((($$$$ppppwwwwdddd,,,, 0000,,,, 2222))));;;;
  698.  
  699.                    ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy ----eeeecccchhhhoooo"""";;;;
  700.                    pppprrrriiiinnnntttt """"PPPPaaaasssssssswwwwoooorrrrdddd:::: """";;;;
  701.                    cccchhhhoooopppp(((($$$$wwwwoooorrrrdddd ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>))));;;;
  702.                    pppprrrriiiinnnntttt """"\\\\nnnn"""";;;;
  703.                    ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy eeeecccchhhhoooo"""";;;;
  704.  
  705.                    iiiiffff ((((ccccrrrryyyypppptttt(((($$$$wwwwoooorrrrdddd,,,, $$$$ssssaaaalllltttt)))) nnnneeee $$$$ppppwwwwdddd)))) {{{{
  706.                        ddddiiiieeee """"SSSSoooorrrrrrrryyyy............\\\\nnnn"""";;;;
  707.                    }}}} eeeellllsssseeee {{{{
  708.                        pppprrrriiiinnnntttt """"ooookkkk\\\\nnnn"""";;;;
  709.                    }}}}
  710.  
  711.                Of course, typing in your own password to whoever
  712.                asks you for it is unwise.
  713.  
  714.        dbmclose ASSOC_ARRAY
  715.                [This function has been superseded by the _u_n_t_i_e_(_)
  716.                function.]
  717.  
  718.                Breaks the binding between a DBM file and an
  719.                associative array.
  720.  
  721.  
  722.  
  723.  
  724. 16/Feb/96                perl 5.002 with                       11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  731.  
  732.  
  733.        dbmopen ASSOC,DBNAME,MODE
  734.                [This function has been superseded by the _t_i_e_(_)
  735.                function.]
  736.  
  737.                This binds a _d_b_m(3), _n_d_b_m(3), _s_d_b_m(3), _g_d_b_m_(_), or
  738.                Berkeley DB file to an associative array.  ASSOC
  739.                is the name of the associative array.  (Unlike
  740.                normal open, the first argument is _N_O_T a
  741.                filehandle, even though it looks like one).
  742.                DBNAME is the name of the database (without the
  743.                _._d_i_r or _._p_a_g extension if any).  If the database
  744.                does not exist, it is created with protection
  745.                specified by MODE (as modified by the _u_m_a_s_k_(_)).
  746.                If your system only supports the older DBM
  747.                functions, you may perform only one _d_b_m_o_p_e_n_(_) in
  748.                your program.  In older versions of Perl, if your
  749.                system had neither DBM nor ndbm, calling _d_b_m_o_p_e_n_(_)
  750.                produced a fatal error; it now falls back to
  751.                _s_d_b_m(3).
  752.  
  753.                If you don't have write access to the DBM file,
  754.                you can only read associative array variables, not
  755.                set them.  If you want to test whether you can
  756.                write, either use file tests or try setting a
  757.                dummy array entry inside an _e_v_a_l_(_), which will
  758.                trap the error.
  759.  
  760.                Note that functions such as _k_e_y_s_(_) and _v_a_l_u_e_s_(_)
  761.                may return huge array values when used on large
  762.                DBM files.  You may prefer to use the _e_a_c_h_(_)
  763.                function to iterate over large DBM files.
  764.                Example:
  765.  
  766.                    #### pppprrrriiiinnnntttt oooouuuutttt hhhhiiiissssttttoooorrrryyyy ffffiiiilllleeee ooooffffffffsssseeeettttssss
  767.                    ddddbbbbmmmmooooppppeeeennnn((((%%%%HHHHIIIISSSSTTTT,,,,''''////uuuussssrrrr////lllliiiibbbb////nnnneeeewwwwssss////hhhhiiiissssttttoooorrrryyyy'''',,,,0000666666666666))));;;;
  768.                    wwwwhhhhiiiilllleeee (((((((($$$$kkkkeeeeyyyy,,,,$$$$vvvvaaaallll)))) ==== eeeeaaaacccchhhh %%%%HHHHIIIISSSSTTTT)))) {{{{
  769.                        pppprrrriiiinnnntttt $$$$kkkkeeeeyyyy,,,, '''' ==== '''',,,, uuuunnnnppppaaaacccckkkk((((''''LLLL'''',,,,$$$$vvvvaaaallll)))),,,, """"\\\\nnnn"""";;;;
  770.                    }}}}
  771.                    ddddbbbbmmmmcccclllloooosssseeee((((%%%%HHHHIIIISSSSTTTT))));;;;
  772.  
  773.                See also the _A_n_y_D_B_M___F_i_l_e manpage for a more
  774.                general description of the pros and cons of the
  775.                various dbm apparoches, as well as the _D_B___F_i_l_e
  776.                manpage for a particularly rich implementation.
  777.  
  778.        defined EXPR
  779.                Returns a boolean value saying whether EXPR has a
  780.                real value or not.  Many operations return the
  781.                undefined value under exceptional conditions, such
  782.                as end of file, uninitialized variable, system
  783.                error and such.  This function allows you to
  784.                distinguish between an undefined null scalar and a
  785.                defined null scalar with operations that might
  786.                return a real null string, such as referencing
  787.  
  788.  
  789.  
  790. 16/Feb/96                perl 5.002 with                       12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  797.  
  798.  
  799.                elements of an array.  You may also check to see
  800.                if arrays or subroutines exist.  Use of defined on
  801.                predefined variables is not guaranteed to produce
  802.                intuitive results.
  803.  
  804.                When used on a hash array element, it tells you
  805.                whether the value is defined, not whether the key
  806.                exists in the hash.  Use _e_x_i_s_t_s_(_) for that.
  807.  
  808.                Examples:
  809.  
  810.                    pppprrrriiiinnnntttt iiiiffff ddddeeeeffffiiiinnnneeeedddd $$$$sssswwwwiiiittttcccchhhh{{{{''''DDDD''''}}}};;;;
  811.                    pppprrrriiiinnnntttt """"$$$$vvvvaaaallll\\\\nnnn"""" wwwwhhhhiiiilllleeee ddddeeeeffffiiiinnnneeeedddd(((($$$$vvvvaaaallll ==== ppppoooopppp((((@@@@aaaarrrryyyy))))))));;;;
  812.                    ddddiiiieeee """"CCCCaaaannnn''''tttt rrrreeeeaaaaddddlllliiiinnnnkkkk $$$$ssssyyyymmmm:::: $$$$!!!!""""
  813.                        uuuunnnnlllleeeessssssss ddddeeeeffffiiiinnnneeeedddd(((($$$$vvvvaaaalllluuuueeee ==== rrrreeeeaaaaddddlllliiiinnnnkkkk $$$$ssssyyyymmmm))));;;;
  814.                    eeeevvvvaaaallll ''''@@@@ffffoooooooo ==== (((())))'''' iiiiffff ddddeeeeffffiiiinnnneeeedddd((((@@@@ffffoooooooo))));;;;
  815.                    ddddiiiieeee """"NNNNoooo XXXXYYYYZZZZ ppppaaaacccckkkkaaaaggggeeee ddddeeeeffffiiiinnnneeeedddd"""" uuuunnnnlllleeeessssssss ddddeeeeffffiiiinnnneeeedddd %%%%____XXXXYYYYZZZZ;;;;
  816.                    ssssuuuubbbb ffffoooooooo {{{{ ddddeeeeffffiiiinnnneeeedddd &&&&$$$$bbbbaaaarrrr ???? &&&&$$$$bbbbaaaarrrr((((@@@@____)))) :::: ddddiiiieeee """"NNNNoooo bbbbaaaarrrr"""";;;; }}}}
  817.  
  818.                See also _u_n_d_e_f_(_).
  819.  
  820.                Note: many folks tend to overuse _d_e_f_i_n_e_d_(_), and
  821.                then are surprised to discover that the number 0
  822.                and the null string are, in fact, defined
  823.                concepts.  For example, if you say
  824.  
  825.                    """"aaaabbbb"""" ====~~~~ ////aaaa((((....****))))bbbb////;;;;
  826.  
  827.                the pattern match succeeds, and $$$$1111 is defined,
  828.                despite the fact that it matched "nothing".  But
  829.                it didn't really match nothing--rather, it matched
  830.                something that happened to be 0 characters long.
  831.                This is all very above-board and honest.  When a
  832.                function returns an undefined value, it's an
  833.                admission that it couldn't give you an honest
  834.                answer.  So you should only use _d_e_f_i_n_e_d_(_) when
  835.                you're questioning the integrity of what you're
  836.                trying to do.  At other times, a simple comparison
  837.                to 0 or "" is what you want.
  838.  
  839.        delete EXPR
  840.                Deletes the specified value from its hash array.
  841.                Returns the deleted value, or the undefined value
  842.                if nothing was deleted.  Deleting from $$$$EEEENNNNVVVV{{{{}}}}
  843.                modifies the environment.  Deleting from an array
  844.                tied to a DBM file deletes the entry from the DBM
  845.                file.  (But deleting from a _t_i_e_(_)d hash doesn't
  846.                necessarily return anything.)
  847.  
  848.                The following deletes all the values of an
  849.                associative array:
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856. 16/Feb/96                perl 5.002 with                       13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  863.  
  864.  
  865.                    ffffoooorrrreeeeaaaacccchhhh $$$$kkkkeeeeyyyy ((((kkkkeeeeyyyyssss %%%%AAAARRRRRRRRAAAAYYYY)))) {{{{
  866.                        ddddeeeelllleeeetttteeee $$$$AAAARRRRRRRRAAAAYYYY{{{{$$$$kkkkeeeeyyyy}}}};;;;
  867.                    }}}}
  868.  
  869.                (But it would be faster to use the _u_n_d_e_f_(_)
  870.                command.)  Note that the EXPR can be arbitrarily
  871.                complicated as long as the final operation is a
  872.                hash key lookup:
  873.  
  874.                    ddddeeeelllleeeetttteeee $$$$rrrreeeeffff---->>>>[[[[$$$$xxxx]]]][[[[$$$$yyyy]]]]{{{{$$$$kkkkeeeeyyyy}}}};;;;
  875.  
  876.  
  877.        die LIST
  878.                Outside of an _e_v_a_l_(_), prints the value of LIST to
  879.                SSSSTTTTDDDDEEEERRRRRRRR and exits with the current value of $!
  880.                (errno).  If $! is 0, exits with the value of (((($$$$????
  881.                >>>>>>>> 8888)))) (backtick `command` status).  If (((($$$$???? >>>>>>>> 8888))))
  882.                is 0, exits with 255.  Inside an _e_v_a_l_(_), the error
  883.                message is stuffed into $$$$@@@@, and the _e_v_a_l_(_) is
  884.                terminated with the undefined value; this makes
  885.                _d_i_e_(_) the way to raise an exception.
  886.  
  887.                Equivalent examples:
  888.  
  889.                    ddddiiiieeee """"CCCCaaaannnn''''tttt ccccdddd ttttoooo ssssppppoooooooollll:::: $$$$!!!!\\\\nnnn"""" uuuunnnnlllleeeessssssss cccchhhhddddiiiirrrr ''''////uuuussssrrrr////ssssppppoooooooollll////nnnneeeewwwwssss'''';;;;
  890.                    cccchhhhddddiiiirrrr ''''////uuuussssrrrr////ssssppppoooooooollll////nnnneeeewwwwssss'''' oooorrrr ddddiiiieeee """"CCCCaaaannnn''''tttt ccccdddd ttttoooo ssssppppoooooooollll:::: $$$$!!!!\\\\nnnn""""
  891.  
  892.                If the value of EXPR does not end in a newline,
  893.                the current script line number and input line
  894.                number (if any) are also printed, and a newline is
  895.                supplied.  Hint: sometimes appending ", stopped"
  896.                to your message will cause it to make better sense
  897.                when the string "at foo line 123" is appended.
  898.                Suppose you are running script "canasta".
  899.  
  900.                    ddddiiiieeee """"////eeeettttcccc////ggggaaaammmmeeeessss iiiissss nnnnoooo ggggoooooooodddd"""";;;;
  901.                    ddddiiiieeee """"////eeeettttcccc////ggggaaaammmmeeeessss iiiissss nnnnoooo ggggoooooooodddd,,,, ssssttttooooppppppppeeeedddd"""";;;;
  902.  
  903.                produce, respectively
  904.  
  905.                    ////eeeettttcccc////ggggaaaammmmeeeessss iiiissss nnnnoooo ggggoooooooodddd aaaatttt ccccaaaannnnaaaassssttttaaaa lllliiiinnnneeee 111122223333....
  906.                    ////eeeettttcccc////ggggaaaammmmeeeessss iiiissss nnnnoooo ggggoooooooodddd,,,, ssssttttooooppppppppeeeedddd aaaatttt ccccaaaannnnaaaassssttttaaaa lllliiiinnnneeee 111122223333....
  907.  
  908.                See also _e_x_i_t_(_) and _w_a_r_n_(_).
  909.  
  910.        do BLOCK
  911.                Not really a function.  Returns the value of the
  912.                last command in the sequence of commands indicated
  913.                by BLOCK.  When modified by a loop modifier,
  914.                executes the BLOCK once before testing the loop
  915.                condition.  (On other statements the loop
  916.                modifiers test the conditional first.)
  917.  
  918.  
  919.  
  920.  
  921.  
  922. 16/Feb/96                perl 5.002 with                       14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  929.  
  930.  
  931.        do SUBROUTINE(LIST)
  932.                A deprecated form of subroutine call.  See the
  933.                _p_e_r_l_s_u_b manpage.
  934.  
  935.        do EXPR Uses the value of EXPR as a filename and executes
  936.                the contents of the file as a Perl script.  Its
  937.                primary use is to include subroutines from a Perl
  938.                subroutine library.
  939.  
  940.                    ddddoooo ''''ssssttttaaaatttt....ppppllll'''';;;;
  941.  
  942.                is just like
  943.  
  944.                    eeeevvvvaaaallll ````ccccaaaatttt ssssttttaaaatttt....ppppllll````;;;;
  945.  
  946.                except that it's more efficient, more concise,
  947.                keeps track of the current filename for error
  948.                messages, and searches all the ----IIII libraries if the
  949.                file isn't in the current directory (see also the
  950.                @@@@IIIINNNNCCCC array in the section on _P_r_e_d_e_f_i_n_e_d _N_a_m_e_s in
  951.                the _p_e_r_l_v_a_r manpage).  It's the same, however, in
  952.                that it does reparse the file every time you call
  953.                it, so you probably don't want to do this inside a
  954.                loop.
  955.  
  956.                Note that inclusion of library modules is better
  957.                done with the _u_s_e_(_) and _r_e_q_u_i_r_e_(_) operators, which
  958.                also do error checking and raise an exception if
  959.                there's a problem.
  960.  
  961.        dump LABEL
  962.                This causes an immediate core dump.  Primarily
  963.                this is so that you can use the uuuunnnndddduuuummmmpppp program to
  964.                turn your core dump into an executable binary
  965.                after having initialized all your variables at the
  966.                beginning of the program.  When the new binary is
  967.                executed it will begin by executing a ggggoooottttoooo LLLLAAAABBBBEEEELLLL
  968.                (with all the restrictions that ggggoooottttoooo suffers).
  969.                Think of it as a goto with an intervening core
  970.                dump and reincarnation.  If LABEL is omitted,
  971.                restarts the program from the top.  WARNING: any
  972.                files opened at the time of the dump will NOT be
  973.                open any more when the program is reincarnated,
  974.                with possible resulting confusion on the part of
  975.                Perl.  See also ----uuuu option in the _p_e_r_l_r_u_n manpage.
  976.  
  977.                Example:
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988. 16/Feb/96                perl 5.002 with                       15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  995.  
  996.  
  997.                    ####!!!!////uuuussssrrrr////bbbbiiiinnnn////ppppeeeerrrrllll
  998.                    rrrreeeeqqqquuuuiiiirrrreeee ''''ggggeeeettttoooopppptttt....ppppllll'''';;;;
  999.                    rrrreeeeqqqquuuuiiiirrrreeee ''''ssssttttaaaatttt....ppppllll'''';;;;
  1000.                    %%%%ddddaaaayyyyssss ==== ((((
  1001.                        ''''SSSSuuuunnnn'''' ====>>>> 1111,,,,
  1002.                        ''''MMMMoooonnnn'''' ====>>>> 2222,,,,
  1003.                        ''''TTTTuuuueeee'''' ====>>>> 3333,,,,
  1004.                        ''''WWWWeeeedddd'''' ====>>>> 4444,,,,
  1005.                        ''''TTTThhhhuuuu'''' ====>>>> 5555,,,,
  1006.                        ''''FFFFrrrriiii'''' ====>>>> 6666,,,,
  1007.                        ''''SSSSaaaatttt'''' ====>>>> 7777,,,,
  1008.                    ))));;;;
  1009.  
  1010.                    dddduuuummmmpppp QQQQUUUUIIIICCCCKKKKSSSSTTTTAAAARRRRTTTT iiiiffff $$$$AAAARRRRGGGGVVVV[[[[0000]]]] eeeeqqqq ''''----dddd'''';;;;
  1011.  
  1012.                    QQQQUUUUIIIICCCCKKKKSSSSTTTTAAAARRRRTTTT::::
  1013.                    GGGGeeeettttoooopppptttt((((''''ffff''''))));;;;
  1014.  
  1015.  
  1016.        each ASSOC_ARRAY
  1017.                Returns a 2-element array consisting of the key
  1018.                and value for the next value of an associative
  1019.                array, so that you can iterate over it.  Entries
  1020.                are returned in an apparently random order.  When
  1021.                the array is entirely read, a null array is
  1022.                returned (which when assigned produces a FALSE (0)
  1023.                value).  The next call to _e_a_c_h_(_) after that will
  1024.                start iterating again.  The iterator can be reset
  1025.                only by reading all the elements from the array.
  1026.                You should not add elements to an array while
  1027.                you're iterating over it.  There is a single
  1028.                iterator for each associative array, shared by all
  1029.                _e_a_c_h_(_), _k_e_y_s_(_) and _v_a_l_u_e_s_(_) function calls in the
  1030.                program.  The following prints out your
  1031.                environment like the _p_r_i_n_t_e_n_v(1) program, only in
  1032.                a different order:
  1033.  
  1034.                    wwwwhhhhiiiilllleeee (((((((($$$$kkkkeeeeyyyy,,,,$$$$vvvvaaaalllluuuueeee)))) ==== eeeeaaaacccchhhh %%%%EEEENNNNVVVV)))) {{{{
  1035.                        pppprrrriiiinnnntttt """"$$$$kkkkeeeeyyyy====$$$$vvvvaaaalllluuuueeee\\\\nnnn"""";;;;
  1036.                    }}}}
  1037.  
  1038.                See also _k_e_y_s_(_) and _v_a_l_u_e_s_(_).
  1039.  
  1040.        eof FILEHANDLE
  1041.  
  1042.        eof ()
  1043.  
  1044.        eof     Returns 1 if the next read on FILEHANDLE will
  1045.                return end of file, or if FILEHANDLE is not open.
  1046.                FILEHANDLE may be an expression whose value gives
  1047.                the real filehandle name.  (Note that this
  1048.                function actually reads a character and then
  1049.                _u_n_g_e_t_c_(_)s it, so it is not very useful in an
  1050.                interactive context.)  Do not read from a terminal
  1051.  
  1052.  
  1053.  
  1054. 16/Feb/96                perl 5.002 with                       16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1061.  
  1062.  
  1063.                file (or call eeeeooooffff((((FFFFIIIILLLLEEEEHHHHAAAANNNNDDDDLLLLEEEE)))) on it) after end-of-
  1064.                file is reached.  Filetypes such as terminals may
  1065.                lose the end-of-file condition if you do.
  1066.  
  1067.                An eeeeooooffff without an argument uses the last file read
  1068.                as argument.  Empty parentheses () may be used to
  1069.                indicate the pseudofile formed of the files listed
  1070.                on the command line, i.e.  eeeeooooffff(((()))) is reasonable to
  1071.                use inside a while (<>) loop to detect the end of
  1072.                only the last file.  Use eeeeooooffff((((AAAARRRRGGGGVVVV)))) or eof without
  1073.                the parentheses to test _E_A_C_H file in a while (<>)
  1074.                loop.  Examples:
  1075.  
  1076.                    #### rrrreeeesssseeeetttt lllliiiinnnneeee nnnnuuuummmmbbbbeeeerrrriiiinnnngggg oooonnnn eeeeaaaacccchhhh iiiinnnnppppuuuutttt ffffiiiilllleeee
  1077.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  1078.                        pppprrrriiiinnnntttt """"$$$$....\\\\tttt$$$$____"""";;;;
  1079.                        cccclllloooosssseeee((((AAAARRRRGGGGVVVV)))) iiiiffff ((((eeeeooooffff))));;;;   #### NNNNooootttt eeeeooooffff(((())))....
  1080.                    }}}}
  1081.  
  1082.                    #### iiiinnnnsssseeeerrrrtttt ddddaaaasssshhhheeeessss jjjjuuuusssstttt bbbbeeeeffffoooorrrreeee llllaaaasssstttt lllliiiinnnneeee ooooffff llllaaaasssstttt ffffiiiilllleeee
  1083.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  1084.                        iiiiffff ((((eeeeooooffff(((()))))))) {{{{
  1085.                            pppprrrriiiinnnntttt """"--------------------------------------------------------\\\\nnnn"""";;;;
  1086.                            cccclllloooosssseeee((((AAAARRRRGGGGVVVV))));;;;        #### cccclllloooosssseeee oooorrrr bbbbrrrreeeeaaaakkkk;;;; iiiissss nnnneeeeeeeeddddeeeedddd iiiiffff wwwweeee
  1087.                                                #### aaaarrrreeee rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm tttthhhheeee tttteeeerrrrmmmmiiiinnnnaaaallll
  1088.                        }}}}
  1089.                        pppprrrriiiinnnntttt;;;;
  1090.                    }}}}
  1091.  
  1092.                Practical hint: you almost never need to use eeeeooooffff
  1093.                in Perl, because the input operators return undef
  1094.                when they run out of data.  Testing eeeeooooffff
  1095.  
  1096.        eval EXPR
  1097.  
  1098.        eval BLOCK
  1099.                EXPR is parsed and executed as if it were a little
  1100.                Perl program.  It is executed in the context of
  1101.                the current Perl program, so that any variable
  1102.                settings, subroutine or format definitions remain
  1103.                afterwards.  The value returned is the value of
  1104.                the last expression evaluated, or a return
  1105.                statement may be used, just as with subroutines.
  1106.  
  1107.                If there is a syntax error or runtime error, or a
  1108.                _d_i_e_(_) statement is executed, an undefined value is
  1109.                returned by _e_v_a_l_(_), and $$$$@@@@ is set to the error
  1110.                message.  If there was no error, $$$$@@@@ is guaranteed
  1111.                to be a null string.  If EXPR is omitted,
  1112.                evaluates $$$$____.  The final semicolon, if any, may be
  1113.                omitted from the expression.
  1114.  
  1115.                Note that, since _e_v_a_l_(_) traps otherwise-fatal
  1116.                errors, it is useful for determining whether a
  1117.  
  1118.  
  1119.  
  1120. 16/Feb/96                perl 5.002 with                       17
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1127.  
  1128.  
  1129.                particular feature (such as _s_o_c_k_e_t_(_) or _s_y_m_l_i_n_k_(_))
  1130.                is implemented.  It is also Perl's exception
  1131.                trapping mechanism, where the die operator is used
  1132.                to raise exceptions.
  1133.  
  1134.                If the code to be executed doesn't vary, you may
  1135.                use the eval-BLOCK form to trap run-time errors
  1136.                without incurring the penalty of recompiling each
  1137.                time.  The error, if any, is still returned in $$$$@@@@.
  1138.                Examples:
  1139.  
  1140.                    #### mmmmaaaakkkkeeee ddddiiiivvvviiiiddddeeee----bbbbyyyy----zzzzeeeerrrroooo nnnnoooonnnn----ffffaaaattttaaaallll
  1141.                    eeeevvvvaaaallll {{{{ $$$$aaaannnnsssswwwweeeerrrr ==== $$$$aaaa //// $$$$bbbb;;;; }}}};;;; wwwwaaaarrrrnnnn $$$$@@@@ iiiiffff $$$$@@@@;;;;
  1142.  
  1143.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg,,,, bbbbuuuutttt lllleeeessssssss eeeeffffffffiiiicccciiiieeeennnntttt
  1144.                    eeeevvvvaaaallll ''''$$$$aaaannnnsssswwwweeeerrrr ==== $$$$aaaa //// $$$$bbbb'''';;;; wwwwaaaarrrrnnnn $$$$@@@@ iiiiffff $$$$@@@@;;;;
  1145.  
  1146.                    #### aaaa ccccoooommmmppppiiiilllleeee----ttttiiiimmmmeeee eeeerrrrrrrroooorrrr
  1147.                    eeeevvvvaaaallll {{{{ $$$$aaaannnnsssswwwweeeerrrr ==== }}}};;;;
  1148.  
  1149.                    #### aaaa rrrruuuunnnn----ttttiiiimmmmeeee eeeerrrrrrrroooorrrr
  1150.                    eeeevvvvaaaallll ''''$$$$aaaannnnsssswwwweeeerrrr ===='''';;;;   #### sssseeeettttssss $$$$@@@@
  1151.  
  1152.                With an _e_v_a_l_(_), you should be especially careful
  1153.                to remember what's being looked at when:
  1154.  
  1155.                    eeeevvvvaaaallll $$$$xxxx;;;;            #### CCCCAAAASSSSEEEE 1111
  1156.                    eeeevvvvaaaallll """"$$$$xxxx"""";;;;          #### CCCCAAAASSSSEEEE 2222
  1157.  
  1158.                    eeeevvvvaaaallll ''''$$$$xxxx'''';;;;          #### CCCCAAAASSSSEEEE 3333
  1159.                    eeeevvvvaaaallll {{{{ $$$$xxxx }}}};;;;        #### CCCCAAAASSSSEEEE 4444
  1160.  
  1161.                    eeeevvvvaaaallll """"\\\\$$$$$$$$xxxx++++++++""""       #### CCCCAAAASSSSEEEE 5555
  1162.                    $$$$$$$$xxxx++++++++;;;;              #### CCCCAAAASSSSEEEE 6666
  1163.  
  1164.                Cases 1 and 2 above behave identically: they run
  1165.                the code contained in the variable $$$$xxxx.  (Although
  1166.                case 2 has misleading double quotes making the
  1167.                reader wonder what else might be happening
  1168.                (nothing is).) Cases 3 and 4 likewise behave in
  1169.                the same way: they run the code <$x>, which does
  1170.                nothing at all.  (Case 4 is preferred for purely
  1171.                visual reasons.) Case 5 is a place where normally
  1172.                you _W_O_U_L_D like to use double quotes, except that
  1173.                in that particular situation, you can just use
  1174.                symbolic references instead, as in case 6.
  1175.  
  1176.        exec LIST
  1177.                The _e_x_e_c_(_) function executes a system command _A_N_D
  1178.                _N_E_V_E_R _R_E_T_U_R_N_S.  Use the _s_y_s_t_e_m_(_) function if you
  1179.                want it to return.
  1180.  
  1181.                If there is more than one argument in LIST, or if
  1182.                LIST is an array with more than one value, calls
  1183.  
  1184.  
  1185.  
  1186. 16/Feb/96                perl 5.002 with                       18
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1193.  
  1194.  
  1195.                _e_x_e_c_v_p(3) with the arguments in LIST.  If there is
  1196.                only one scalar argument, the argument is checked
  1197.                for shell metacharacters.  If there are any, the
  1198.                entire argument is passed to ////bbbbiiiinnnn////sssshhhh ----cccc for
  1199.                parsing.  If there are none, the argument is split
  1200.                into words and passed directly to _e_x_e_c_v_p_(_), which
  1201.                is more efficient.  Note: _e_x_e_c_(_) (and _s_y_s_t_e_m(0) do
  1202.                not flush your output buffer, so you may need to
  1203.                set $$$$|||| to avoid lost output.  Examples:
  1204.  
  1205.                    eeeexxxxeeeecccc ''''////bbbbiiiinnnn////eeeecccchhhhoooo'''',,,, ''''YYYYoooouuuurrrr aaaarrrrgggguuuummmmeeeennnnttttssss aaaarrrreeee:::: '''',,,, @@@@AAAARRRRGGGGVVVV;;;;
  1206.                    eeeexxxxeeeecccc """"ssssoooorrrrtttt $$$$oooouuuuttttffffiiiilllleeee |||| uuuunnnniiiiqqqq"""";;;;
  1207.  
  1208.                If you don't really want to execute the first
  1209.                argument, but want to lie to the program you are
  1210.                executing about its own name, you can specify the
  1211.                program you actually want to run as an "indirect
  1212.                object" (without a comma) in front of the LIST.
  1213.                (This always forces interpretation of the LIST as
  1214.                a multi-valued list, even if there is only a
  1215.                single scalar in the list.)  Example:
  1216.  
  1217.                    $$$$sssshhhheeeellllllll ==== ''''////bbbbiiiinnnn////ccccsssshhhh'''';;;;
  1218.                    eeeexxxxeeeecccc $$$$sssshhhheeeellllllll ''''----sssshhhh'''';;;;          #### pppprrrreeeetttteeeennnndddd iiiitttt''''ssss aaaa llllooooggggiiiinnnn sssshhhheeeellllllll
  1219.  
  1220.                or, more directly,
  1221.  
  1222.                    eeeexxxxeeeecccc {{{{''''////bbbbiiiinnnn////ccccsssshhhh''''}}}} ''''----sssshhhh'''';;;;    #### pppprrrreeeetttteeeennnndddd iiiitttt''''ssss aaaa llllooooggggiiiinnnn sssshhhheeeellllllll
  1223.  
  1224.  
  1225.        exists EXPR
  1226.                Returns TRUE if the specified hash key exists in
  1227.                its hash array, even if the corresponding value is
  1228.                undefined.
  1229.  
  1230.                    pppprrrriiiinnnntttt """"EEEExxxxiiiissssttttssss\\\\nnnn"""" iiiiffff eeeexxxxiiiissssttttssss $$$$aaaarrrrrrrraaaayyyy{{{{$$$$kkkkeeeeyyyy}}}};;;;
  1231.                    pppprrrriiiinnnntttt """"DDDDeeeeffffiiiinnnneeeedddd\\\\nnnn"""" iiiiffff ddddeeeeffffiiiinnnneeeedddd $$$$aaaarrrrrrrraaaayyyy{{{{$$$$kkkkeeeeyyyy}}}};;;;
  1232.                    pppprrrriiiinnnntttt """"TTTTrrrruuuueeee\\\\nnnn"""" iiiiffff $$$$aaaarrrrrrrraaaayyyy{{{{$$$$kkkkeeeeyyyy}}}};;;;
  1233.  
  1234.                A hash element can only be TRUE if it's defined,
  1235.                and defined if it exists, but the reverse doesn't
  1236.                necessarily hold true.
  1237.  
  1238.                Note that the EXPR can be arbitrarily complicated
  1239.                as long as the final operation is a hash key
  1240.                lookup:
  1241.  
  1242.                    iiiiffff ((((eeeexxxxiiiissssttttssss $$$$rrrreeeeffff---->>>>[[[[$$$$xxxx]]]][[[[$$$$yyyy]]]]{{{{$$$$kkkkeeeeyyyy}}}})))) {{{{ ............ }}}}
  1243.  
  1244.  
  1245.        exit EXPR
  1246.                Evaluates EXPR and exits immediately with that
  1247.                value.  (Actually, it calls any defined EEEENNNNDDDD
  1248.                routines first, but the EEEENNNNDDDD routines may not abort
  1249.  
  1250.  
  1251.  
  1252. 16/Feb/96                perl 5.002 with                       19
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1259.  
  1260.  
  1261.                the exit.  Likewise any object destructors that
  1262.                need to be called are called before exit.)
  1263.                Example:
  1264.  
  1265.                    $$$$aaaannnnssss ==== <<<<SSSSTTTTDDDDIIIINNNN>>>>;;;;
  1266.                    eeeexxxxiiiitttt 0000 iiiiffff $$$$aaaannnnssss ====~~~~ ////^^^^[[[[XXXXxxxx]]]]////;;;;
  1267.  
  1268.                See also _d_i_e_(_).  If EXPR is omitted, exits with 0
  1269.                status.
  1270.  
  1271.        exp EXPR
  1272.                Returns _e (the natural logarithm base) to the
  1273.                power of EXPR.  If EXPR is omitted, gives eeeexxxxpppp(((($$$$____)))).
  1274.  
  1275.        fcntl FILEHANDLE,FUNCTION,SCALAR
  1276.                Implements the _f_c_n_t_l(2) function.  You'll probably
  1277.                have to say
  1278.  
  1279.                    uuuusssseeee FFFFccccnnnnttttllll;;;;
  1280.  
  1281.                first to get the correct function definitions.
  1282.                Argument processing and value return works just
  1283.                like _i_o_c_t_l_(_) below.  Note that _f_c_n_t_l_(_) will
  1284.                produce a fatal error if used on a machine that
  1285.                doesn't implement _f_c_n_t_l(2).  For example:
  1286.  
  1287.                    uuuusssseeee FFFFccccnnnnttttllll;;;;
  1288.                    ffffccccnnnnttttllll(((($$$$ffffiiiilllleeeehhhhaaaannnnddddlllleeee,,,, FFFF____GGGGEEEETTTTLLLLKKKK,,,, $$$$ppppaaaacccckkkkeeeedddd____rrrreeeettttuuuurrrrnnnn____bbbbuuuuffffffffeeeerrrr))));;;;
  1289.  
  1290.  
  1291.        fileno FILEHANDLE
  1292.                Returns the file descriptor for a filehandle.
  1293.                This is useful for constructing bitmaps for
  1294.                _s_e_l_e_c_t_(_).  If FILEHANDLE is an expression, the
  1295.                value is taken as the name of the filehandle.
  1296.  
  1297.        flock FILEHANDLE,OPERATION
  1298.                Calls _f_l_o_c_k(2) on FILEHANDLE.  See the _f_l_o_c_k_(_2_)
  1299.                manpage for definition of OPERATION.  Returns TRUE
  1300.                for success, FALSE on failure.  Will produce a
  1301.                fatal error if used on a machine that doesn't
  1302.                implement either _f_l_o_c_k(2) or _f_c_n_t_l(2). The
  1303.                _f_c_n_t_l(2) system call will be automatically used if
  1304.                _f_l_o_c_k(2) is missing from your system.  This makes
  1305.                _f_l_o_c_k_(_) the portable file locking strategy,
  1306.                although it will only lock entire files, not
  1307.                records.  Note also that some versions of _f_l_o_c_k_(_)
  1308.                cannot lock things over the network; you would
  1309.                need to use the more system-specific _f_c_n_t_l_(_) for
  1310.                that.
  1311.  
  1312.                Here's a mailbox appender for BSD systems.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318. 16/Feb/96                perl 5.002 with                       20
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1325.  
  1326.  
  1327.                    $$$$LLLLOOOOCCCCKKKK____SSSSHHHH ==== 1111;;;;
  1328.                    $$$$LLLLOOOOCCCCKKKK____EEEEXXXX ==== 2222;;;;
  1329.                    $$$$LLLLOOOOCCCCKKKK____NNNNBBBB ==== 4444;;;;
  1330.                    $$$$LLLLOOOOCCCCKKKK____UUUUNNNN ==== 8888;;;;
  1331.  
  1332.                    ssssuuuubbbb lllloooocccckkkk {{{{
  1333.                        fffflllloooocccckkkk((((MMMMBBBBOOOOXXXX,,,,$$$$LLLLOOOOCCCCKKKK____EEEEXXXX))));;;;
  1334.                        #### aaaannnndddd,,,, iiiinnnn ccccaaaasssseeee ssssoooommmmeeeeoooonnnneeee aaaappppppppeeeennnnddddeeeedddd
  1335.                        #### wwwwhhhhiiiilllleeee wwwweeee wwwweeeerrrreeee wwwwaaaaiiiittttiiiinnnngggg............
  1336.                        sssseeeeeeeekkkk((((MMMMBBBBOOOOXXXX,,,, 0000,,,, 2222))));;;;
  1337.                    }}}}
  1338.  
  1339.                    ssssuuuubbbb uuuunnnnlllloooocccckkkk {{{{
  1340.                        fffflllloooocccckkkk((((MMMMBBBBOOOOXXXX,,,,$$$$LLLLOOOOCCCCKKKK____UUUUNNNN))));;;;
  1341.                    }}}}
  1342.  
  1343.                    ooooppppeeeennnn((((MMMMBBBBOOOOXXXX,,,, """">>>>>>>>////uuuussssrrrr////ssssppppoooooooollll////mmmmaaaaiiiillll////$$$$EEEENNNNVVVV{{{{''''UUUUSSSSEEEERRRR''''}}}}""""))))
  1344.                            oooorrrr ddddiiiieeee """"CCCCaaaannnn''''tttt ooooppppeeeennnn mmmmaaaaiiiillllbbbbooooxxxx:::: $$$$!!!!"""";;;;
  1345.  
  1346.                    lllloooocccckkkk(((())));;;;
  1347.                    pppprrrriiiinnnntttt MMMMBBBBOOOOXXXX $$$$mmmmssssgggg,,,,""""\\\\nnnn\\\\nnnn"""";;;;
  1348.                    uuuunnnnlllloooocccckkkk(((())));;;;
  1349.  
  1350.                See also the _D_B___F_i_l_e manpage for other _f_l_o_c_k_(_)
  1351.                examples.
  1352.  
  1353.        fork    Does a _f_o_r_k(2) system call.  Returns the child pid
  1354.                to the parent process and 0 to the child process,
  1355.                or uuuunnnnddddeeeeffff if the fork is unsuccessful.  Note:
  1356.                unflushed buffers remain unflushed in both
  1357.                processes, which means you may need to set $$$$||||
  1358.                ($AUTOFLUSH in English) or call the _a_u_t_o_f_l_u_s_h_(_)
  1359.                FileHandle method to avoid duplicate output.
  1360.  
  1361.                If you _f_o_r_k_(_) without ever waiting on your
  1362.                children, you will accumulate zombies:
  1363.  
  1364.                    $$$$SSSSIIIIGGGG{{{{CCCCHHHHLLLLDDDD}}}} ==== ssssuuuubbbb {{{{ wwwwaaaaiiiitttt }}}};;;;
  1365.  
  1366.                There's also the double-fork trick (error checking
  1367.                on _f_o_r_k_(_) returns omitted);
  1368.  
  1369.                    uuuunnnnlllleeeessssssss (((($$$$ppppiiiidddd ==== ffffoooorrrrkkkk)))) {{{{
  1370.                        uuuunnnnlllleeeessssssss ((((ffffoooorrrrkkkk)))) {{{{
  1371.                            eeeexxxxeeeecccc """"wwwwhhhhaaaatttt yyyyoooouuuu rrrreeeeaaaallllllllyyyy wwwwaaaannnnnnnnaaaa ddddoooo"""";;;;
  1372.                            ddddiiiieeee """"nnnnoooo eeeexxxxeeeecccc"""";;;;
  1373.                            #### ............ oooorrrr ............
  1374.                            ######## ((((ssssoooommmmeeee____ppppeeeerrrrllll____ccccooooddddeeee____hhhheeeerrrreeee))))
  1375.                            eeeexxxxiiiitttt 0000;;;;
  1376.                        }}}}
  1377.                        eeeexxxxiiiitttt 0000;;;;
  1378.                    }}}}
  1379.                    wwwwaaaaiiiittttppppiiiidddd(((($$$$ppppiiiidddd,,,,0000))));;;;
  1380.  
  1381.  
  1382.  
  1383.  
  1384. 16/Feb/96                perl 5.002 with                       21
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1391.  
  1392.  
  1393.                See also the _p_e_r_l_i_p_c manpage for more examples of
  1394.                forking and reaping moribund children.
  1395.  
  1396.        format  Declare a picture format with use by the _w_r_i_t_e_(_)
  1397.                function.  For example:
  1398.  
  1399.                    ffffoooorrrrmmmmaaaatttt SSSSoooommmmeeeetttthhhhiiiinnnngggg ====
  1400.                        TTTTeeeesssstttt:::: @@@@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @@@@|||||||||||||||||||| @@@@>>>>>>>>>>>>>>>>>>>>
  1401.                              $$$$ssssttttrrrr,,,,     $$$$%%%%,,,,    ''''$$$$'''' .... iiiinnnntttt(((($$$$nnnnuuuummmm))))
  1402.                    ....
  1403.  
  1404.                    $$$$ssssttttrrrr ==== """"wwwwiiiiddddggggeeeetttt"""";;;;
  1405.                    $$$$nnnnuuuummmm ==== $$$$ccccoooosssstttt////$$$$qqqquuuuaaaannnnttttiiiiyyyy;;;;
  1406.                    $$$$~~~~ ==== ''''SSSSoooommmmeeeetttthhhhiiiinnnngggg'''';;;;
  1407.                    wwwwrrrriiiitttteeee;;;;
  1408.  
  1409.                See the _p_e_r_l_f_o_r_m manpage for many details and
  1410.                examples.
  1411.  
  1412.        formline PICTURE, LIST
  1413.                This is an internal function used by ffffoooorrrrmmmmaaaatttts,
  1414.                though you may call it too.  It formats (see the
  1415.                _p_e_r_l_f_o_r_m manpage) a list of values according to
  1416.                the contents of PICTURE, placing the output into
  1417.                the format output accumulator, $$$$^^^^AAAA (or
  1418.                $$$$AAAACCCCCCCCUUUUMMMMUUUULLLLAAAATTTTOOOORRRR in English).  Eventually, when a
  1419.                _w_r_i_t_e_(_) is done, the contents of $$$$^^^^AAAA are written
  1420.                to some filehandle, but you could also read $$$$^^^^AAAA
  1421.                yourself and then set $$$$^^^^AAAA back to "".  Note that a
  1422.                format typically does one _f_o_r_m_l_i_n_e_(_) per line of
  1423.                form, but the _f_o_r_m_l_i_n_e_(_) function itself doesn't
  1424.                care how many newlines are embedded in the
  1425.                PICTURE.  This means that the ~~~~ and ~~~~~~~~ tokens will
  1426.                treat the entire PICTURE as a single line.  You
  1427.                may therefore need to use multiple formlines to
  1428.                implement a single record format, just like the
  1429.                format compiler.
  1430.  
  1431.                Be careful if you put double quotes around the
  1432.                picture, since an "@@@@" character may be taken to
  1433.                mean the beginning of an array name.  _f_o_r_m_l_i_n_e_(_)
  1434.                always returns TRUE.  See the _p_e_r_l_f_o_r_m manpage for
  1435.                other examples.
  1436.  
  1437.        getc FILEHANDLE
  1438.  
  1439.        getc    Returns the next character from the input file
  1440.                attached to FILEHANDLE, or a null string at end of
  1441.                file.  If FILEHANDLE is omitted, reads from STDIN.
  1442.                This is not particularly efficient.  It cannot be
  1443.                used to get unbuffered single-characters, however.
  1444.                For that, try something more like:
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450. 16/Feb/96                perl 5.002 with                       22
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1457.  
  1458.  
  1459.                    iiiiffff (((($$$$BBBBSSSSDDDD____SSSSTTTTYYYYLLLLEEEE)))) {{{{
  1460.                        ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy ccccbbbbrrrreeeeaaaakkkk <<<<////ddddeeeevvvv////ttttttttyyyy >>>>////ddddeeeevvvv////ttttttttyyyy 2222>>>>&&&&1111"""";;;;
  1461.                    }}}}
  1462.                    eeeellllsssseeee {{{{
  1463.                        ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy"""",,,, ''''----iiiiccccaaaannnnoooonnnn'''',,,, ''''eeeeoooollll'''',,,, """"\\\\000000001111"""";;;;
  1464.                    }}}}
  1465.  
  1466.                    $$$$kkkkeeeeyyyy ==== ggggeeeettttcccc((((SSSSTTTTDDDDIIIINNNN))));;;;
  1467.  
  1468.                    iiiiffff (((($$$$BBBBSSSSDDDD____SSSSTTTTYYYYLLLLEEEE)))) {{{{
  1469.                        ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy ----ccccbbbbrrrreeeeaaaakkkk <<<<////ddddeeeevvvv////ttttttttyyyy >>>>////ddddeeeevvvv////ttttttttyyyy 2222>>>>&&&&1111"""";;;;
  1470.                    }}}}
  1471.                    eeeellllsssseeee {{{{
  1472.                        ssssyyyysssstttteeeemmmm """"ssssttttttttyyyy"""",,,, ''''iiiiccccaaaannnnoooonnnn'''',,,, ''''eeeeoooollll'''',,,, ''''^^^^@@@@'''';;;; #### aaaasssscccciiiiiiii nnnnuuuullllllll
  1473.                    }}}}
  1474.                    pppprrrriiiinnnntttt """"\\\\nnnn"""";;;;
  1475.  
  1476.                Determination of whether to whether $$$$BBBBSSSSDDDD____SSSSTTTTYYYYLLLLEEEE
  1477.                should be set is left as an exercise to the
  1478.                reader.
  1479.  
  1480.                See also the TTTTeeeerrrrmmmm::::::::RRRReeeeaaaaddddKKKKeeeeyyyy module from your
  1481.                nearest CPAN site; details on CPAN can be found on
  1482.                the CCCCPPPPAAAANNNN entry in the _p_e_r_l_m_o_d manpage
  1483.  
  1484.        getlogin
  1485.                Returns the current login from _/_e_t_c_/_u_t_m_p, if any.
  1486.                If null, use _g_e_t_p_w_u_i_d_(_).
  1487.  
  1488.                    $$$$llllooooggggiiiinnnn ==== ggggeeeettttllllooooggggiiiinnnn |||||||| ((((ggggeeeettttppppwwwwuuuuiiiidddd(((($$$$<<<<))))))))[[[[0000]]]] |||||||| """"KKKKiiiillllrrrrooooyyyy"""";;;;
  1489.  
  1490.                Do not consider _g_e_t_l_o_g_i_n_(_) for authorentication:
  1491.                it is not as secure as _g_e_t_p_w_u_i_d_(_).
  1492.  
  1493.        getpeername SOCKET
  1494.                Returns the packed sockaddr address of other end
  1495.                of the SOCKET connection.
  1496.  
  1497.                    uuuusssseeee SSSSoooocccckkkkeeeetttt;;;;
  1498.                    $$$$hhhheeeerrrrssssoooocccckkkkaaaaddddddddrrrr    ==== ggggeeeettttppppeeeeeeeerrrrnnnnaaaammmmeeee((((SSSSOOOOCCCCKKKK))));;;;
  1499.                    (((($$$$ppppoooorrrrtttt,,,, $$$$iiiiaaaaddddddddrrrr)))) ==== uuuunnnnppppaaaacccckkkk____ssssoooocccckkkkaaaaddddddddrrrr____iiiinnnn(((($$$$hhhheeeerrrrssssoooocccckkkkaaaaddddddddrrrr))));;;;
  1500.                    $$$$hhhheeeerrrrhhhhoooossssttttnnnnaaaammmmeeee    ==== ggggeeeetttthhhhoooossssttttbbbbyyyyaaaaddddddddrrrr(((($$$$iiiiaaaaddddddddrrrr,,,, AAAAFFFF____IIIINNNNEEEETTTT))));;;;
  1501.                    $$$$hhhheeeerrrrssssttttrrrraaaaddddddddrrrr     ==== iiiinnnneeeetttt____nnnnttttooooaaaa(((($$$$iiiiaaaaddddddddrrrr))));;;;
  1502.  
  1503.  
  1504.        getpgrp PID
  1505.                Returns the current process group for the
  1506.                specified PID, 0 for the current process.  Will
  1507.                raise an exception if used on a machine that
  1508.                doesn't implement _g_e_t_p_g_r_p(2).  If PID is omitted,
  1509.                returns process group of current process.
  1510.  
  1511.        getppid Returns the process id of the parent process.
  1512.  
  1513.  
  1514.  
  1515.  
  1516. 16/Feb/96                perl 5.002 with                       23
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1523.  
  1524.  
  1525.        getpriority WHICH,WHO
  1526.                Returns the current priority for a process, a
  1527.                process group, or a user.  (See the _g_e_t_p_r_i_o_r_i_t_y_(_2_)
  1528.                manpage.)  Will raise a fatal exception if used on
  1529.                a machine that doesn't implement _g_e_t_p_r_i_o_r_i_t_y(2).
  1530.  
  1531.        getpwnam NAME
  1532.  
  1533.        getgrnam NAME
  1534.  
  1535.        gethostbyname NAME
  1536.  
  1537.        getnetbyname NAME
  1538.  
  1539.        getprotobyname NAME
  1540.  
  1541.        getpwuid UID
  1542.  
  1543.        getgrgid GID
  1544.  
  1545.        getservbyname NAME,PROTO
  1546.  
  1547.        gethostbyaddr ADDR,ADDRTYPE
  1548.  
  1549.        getnetbyaddr ADDR,ADDRTYPE
  1550.  
  1551.        getprotobynumber NUMBER
  1552.  
  1553.        getservbyport PORT,PROTO
  1554.  
  1555.        getpwent
  1556.  
  1557.        getgrent
  1558.  
  1559.        gethostent
  1560.  
  1561.        getnetent
  1562.  
  1563.        getprotoent
  1564.  
  1565.        getservent
  1566.  
  1567.        setpwent
  1568.  
  1569.        setgrent
  1570.  
  1571.        sethostent STAYOPEN
  1572.  
  1573.        setnetent STAYOPEN
  1574.  
  1575.        setprotoent STAYOPEN
  1576.  
  1577.        setservent STAYOPEN
  1578.  
  1579.  
  1580.  
  1581.  
  1582. 16/Feb/96                perl 5.002 with                       24
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1589.  
  1590.  
  1591.        endpwent
  1592.  
  1593.        endgrent
  1594.  
  1595.        endhostent
  1596.  
  1597.        endnetent
  1598.  
  1599.        endprotoent
  1600.  
  1601.        endservent
  1602.                These routines perform the same functions as their
  1603.                counterparts in the system library.  Within a list
  1604.                context, the return values from the various get
  1605.                routines are as follows:
  1606.  
  1607.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$ppppaaaasssssssswwwwdddd,,,,$$$$uuuuiiiidddd,,,,$$$$ggggiiiidddd,,,,
  1608.                       $$$$qqqquuuuoooottttaaaa,,,,$$$$ccccoooommmmmmmmeeeennnntttt,,,,$$$$ggggccccoooossss,,,,$$$$ddddiiiirrrr,,,,$$$$sssshhhheeeellllllll)))) ==== ggggeeeettttppppwwww****
  1609.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$ppppaaaasssssssswwwwdddd,,,,$$$$ggggiiiidddd,,,,$$$$mmmmeeeemmmmbbbbeeeerrrrssss)))) ==== ggggeeeettttggggrrrr****
  1610.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$aaaalllliiiiaaaasssseeeessss,,,,$$$$aaaaddddddddrrrrttttyyyyppppeeee,,,,$$$$lllleeeennnnggggtttthhhh,,,,@@@@aaaaddddddddrrrrssss)))) ==== ggggeeeetttthhhhoooosssstttt****
  1611.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$aaaalllliiiiaaaasssseeeessss,,,,$$$$aaaaddddddddrrrrttttyyyyppppeeee,,,,$$$$nnnneeeetttt)))) ==== ggggeeeettttnnnneeeetttt****
  1612.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$aaaalllliiiiaaaasssseeeessss,,,,$$$$pppprrrroooottttoooo)))) ==== ggggeeeettttpppprrrroooottttoooo****
  1613.                    (((($$$$nnnnaaaammmmeeee,,,,$$$$aaaalllliiiiaaaasssseeeessss,,,,$$$$ppppoooorrrrtttt,,,,$$$$pppprrrroooottttoooo)))) ==== ggggeeeettttsssseeeerrrrvvvv****
  1614.  
  1615.                (If the entry doesn't exist you get a null list.)
  1616.  
  1617.                Within a scalar context, you get the name, unless
  1618.                the function was a lookup by name, in which case
  1619.                you get the other thing, whatever it is.  (If the
  1620.                entry doesn't exist you get the undefined value.)
  1621.                For example:
  1622.  
  1623.                    $$$$uuuuiiiidddd ==== ggggeeeettttppppwwwwnnnnaaaammmm
  1624.                    $$$$nnnnaaaammmmeeee ==== ggggeeeettttppppwwwwuuuuiiiidddd
  1625.                    $$$$nnnnaaaammmmeeee ==== ggggeeeettttppppwwwweeeennnntttt
  1626.                    $$$$ggggiiiidddd ==== ggggeeeettttggggrrrrnnnnaaaammmm
  1627.                    $$$$nnnnaaaammmmeeee ==== ggggeeeettttggggrrrrggggiiiidddd
  1628.                    $$$$nnnnaaaammmmeeee ==== ggggeeeettttggggrrrreeeennnntttt
  1629.                    eeeettttcccc....
  1630.  
  1631.                The $$$$mmmmeeeemmmmbbbbeeeerrrrssss value returned by _g_e_t_g_r_*_(_) is a space
  1632.                separated list of the login names of the members
  1633.                of the group.
  1634.  
  1635.                For the _g_e_t_h_o_s_t_*_(_) functions, if the hhhh____eeeerrrrrrrrnnnnoooo
  1636.                variable is supported in C, it will be returned to
  1637.                you via $$$$???? if the function call fails.  The @@@@aaaaddddddddrrrrssss
  1638.                value returned by a successful call is a list of
  1639.                the raw addresses returned by the corresponding
  1640.                system library call.  In the Internet domain, each
  1641.                address is four bytes long and you can unpack it
  1642.                by saying something like:
  1643.  
  1644.                    (((($$$$aaaa,,,,$$$$bbbb,,,,$$$$cccc,,,,$$$$dddd)))) ==== uuuunnnnppppaaaacccckkkk((((''''CCCC4444'''',,,,$$$$aaaaddddddddrrrr[[[[0000]]]]))));;;;
  1645.  
  1646.  
  1647.  
  1648. 16/Feb/96                perl 5.002 with                       25
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1655.  
  1656.  
  1657.        getsockname SOCKET
  1658.                Returns the packed sockaddr address of this end of
  1659.                the SOCKET connection.
  1660.  
  1661.                    uuuusssseeee SSSSoooocccckkkkeeeetttt;;;;
  1662.                    $$$$mmmmyyyyssssoooocccckkkkaaaaddddddddrrrr ==== ggggeeeettttssssoooocccckkkknnnnaaaammmmeeee((((SSSSOOOOCCCCKKKK))));;;;
  1663.                    (((($$$$ppppoooorrrrtttt,,,, $$$$mmmmyyyyaaaaddddddddrrrr)))) ==== uuuunnnnppppaaaacccckkkk____ssssoooocccckkkkaaaaddddddddrrrr____iiiinnnn(((($$$$mmmmyyyyssssoooocccckkkkaaaaddddddddrrrr))));;;;
  1664.  
  1665.  
  1666.        getsockopt SOCKET,LEVEL,OPTNAME
  1667.                Returns the socket option requested, or undefined
  1668.                if there is an error.
  1669.  
  1670.        glob EXPR
  1671.                Returns the value of EXPR with filename expansions
  1672.                such as a shell would do.  This is the internal
  1673.                function implementing the <*.*> operator, except
  1674.                it's easier to use.
  1675.  
  1676.        gmtime EXPR
  1677.                Converts a time as returned by the time function
  1678.                to a 9-element array with the time localized for
  1679.                the standard Greenwich timezone.  Typically used
  1680.                as follows:
  1681.  
  1682.                    (((($$$$sssseeeecccc,,,,$$$$mmmmiiiinnnn,,,,$$$$hhhhoooouuuurrrr,,,,$$$$mmmmddddaaaayyyy,,,,$$$$mmmmoooonnnn,,,,$$$$yyyyeeeeaaaarrrr,,,,$$$$wwwwddddaaaayyyy,,,,$$$$yyyyddddaaaayyyy,,,,$$$$iiiissssddddsssstttt)))) ====
  1683.                                                            ggggmmmmttttiiiimmmmeeee((((ttttiiiimmmmeeee))));;;;
  1684.  
  1685.                All array elements are numeric, and come straight
  1686.                out of a struct tm.  In particular this means that
  1687.                $$$$mmmmoooonnnn has the range 0..11 and $$$$wwwwddddaaaayyyy has the range
  1688.                0..6.  If EXPR is omitted, does ggggmmmmttttiiiimmmmeeee((((ttttiiiimmmmeeee(((()))))))).
  1689.  
  1690.        goto LABEL
  1691.  
  1692.        goto EXPR
  1693.  
  1694.        goto &NAME
  1695.                The goto-LABEL form finds the statement labeled
  1696.                with LABEL and resumes execution there.  It may
  1697.                not be used to go into any construct that requires
  1698.                initialization, such as a subroutine or a foreach
  1699.                loop.  It also can't be used to go into a
  1700.                construct that is optimized away.  It can be used
  1701.                to go almost anywhere else within the dynamic
  1702.                scope, including out of subroutines, but it's
  1703.                usually better to use some other construct such as
  1704.                last or die.  The author of Perl has never felt
  1705.                the need to use this form of goto (in Perl, that
  1706.                is--C is another matter).
  1707.  
  1708.                The goto-EXPR form expects a label name, whose
  1709.                scope will be resolved dynamically.  This allows
  1710.                for computed gotos per FORTRAN, but isn't
  1711.  
  1712.  
  1713.  
  1714. 16/Feb/96                perl 5.002 with                       26
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1721.  
  1722.  
  1723.                necessarily recommended if you're optimizing for
  1724.                maintainability:
  1725.  
  1726.                    ggggoooottttoooo ((((""""FFFFOOOOOOOO"""",,,, """"BBBBAAAARRRR"""",,,, """"GGGGLLLLAAAARRRRCCCCHHHH""""))))[[[[$$$$iiii]]]];;;;
  1727.  
  1728.                The goto-&NAME form is highly magical, and
  1729.                substitutes a call to the named subroutine for the
  1730.                currently running subroutine.  This is used by
  1731.                AUTOLOAD subroutines that wish to load another
  1732.                subroutine and then pretend that the other
  1733.                subroutine had been called in the first place
  1734.                (except that any modifications to @@@@____ in the
  1735.                current subroutine are propagated to the other
  1736.                subroutine.)  After the goto, not even _c_a_l_l_e_r_(_)
  1737.                will be able to tell that this routine was called
  1738.                first.
  1739.  
  1740.        grep BLOCK LIST
  1741.  
  1742.        grep EXPR,LIST
  1743.                Evaluates the BLOCK or EXPR for each element of
  1744.                LIST (locally setting $$$$____ to each element) and
  1745.                returns the list value consisting of those
  1746.                elements for which the expression evaluated to
  1747.                TRUE.  In a scalar context, returns the number of
  1748.                times the expression was TRUE.
  1749.  
  1750.                    @@@@ffffoooooooo ==== ggggrrrreeeepppp((((!!!!////^^^^####////,,,, @@@@bbbbaaaarrrr))));;;;    #### wwwweeeeeeeedddd oooouuuutttt ccccoooommmmmmmmeeeennnnttttssss
  1751.  
  1752.                or equivalently,
  1753.  
  1754.                    @@@@ffffoooooooo ==== ggggrrrreeeepppp {{{{!!!!////^^^^####////}}}} @@@@bbbbaaaarrrr;;;;    #### wwwweeeeeeeedddd oooouuuutttt ccccoooommmmmmmmeeeennnnttttssss
  1755.  
  1756.                Note that, since $$$$____ is a reference into the list
  1757.                value, it can be used to modify the elements of
  1758.                the array.  While this is useful and supported, it
  1759.                can cause bizarre results if the LIST is not a
  1760.                named array.
  1761.  
  1762.        hex EXPR
  1763.                Interprets EXPR as a hex string and returns the
  1764.                corresponding decimal value.  (To convert strings
  1765.                that might start with 0 or 0x see _o_c_t_(_).)  If EXPR
  1766.                is omitted, uses $$$$____.
  1767.  
  1768.        import  There is no built-in _i_m_p_o_r_t_(_) function.  It is
  1769.                merely an ordinary method (subroutine) defined (or
  1770.                inherited) by modules that wish to export names to
  1771.                another module.  The _u_s_e_(_) function calls the
  1772.                _i_m_p_o_r_t_(_) method for the package used.  See also
  1773.                the uuuusssseeee entry elsewhere in this documentthe
  1774.                _p_e_r_l_m_o_d manpage, and the _E_x_p_o_r_t_e_r manpage.
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780. 16/Feb/96                perl 5.002 with                       27
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1787.  
  1788.  
  1789.        index STR,SUBSTR,POSITION
  1790.  
  1791.        index STR,SUBSTR
  1792.                Returns the position of the first occurrence of
  1793.                SUBSTR in STR at or after POSITION.  If POSITION
  1794.                is omitted, starts searching from the beginning of
  1795.                the string.  The return value is based at 0 (or
  1796.                whatever you've set the $[ variable to--but don't
  1797.                do that).  If the substring is not found, returns
  1798.                one less than the base, ordinarily -1.
  1799.  
  1800.        int EXPR
  1801.                Returns the integer portion of EXPR.  If EXPR is
  1802.                omitted, uses $$$$____.
  1803.  
  1804.        ioctl FILEHANDLE,FUNCTION,SCALAR
  1805.                Implements the _i_o_c_t_l(2) function.  You'll probably
  1806.                have to say
  1807.  
  1808.                    rrrreeeeqqqquuuuiiiirrrreeee """"iiiiooooccccttttllll....pppphhhh"""";;;; #### pppprrrroooobbbbaaaabbbbllllyyyy iiiinnnn ////uuuussssrrrr////llllooooccccaaaallll////lllliiiibbbb////ppppeeeerrrrllll////iiiiooooccccttttllll....pppphhhh
  1809.  
  1810.                first to get the correct function definitions.  If
  1811.                _i_o_c_t_l_._p_h doesn't exist or doesn't have the correct
  1812.                definitions you'll have to roll your own, based on
  1813.                your C header files such as _<_s_y_s_/_i_o_c_t_l_._h_>.  (There
  1814.                is a Perl script called hhhh2222pppphhhh that comes with the
  1815.                Perl kit which may help you in this, but it's non-
  1816.                trivial.)  SCALAR will be read and/or written
  1817.                depending on the FUNCTION--a pointer to the string
  1818.                value of SCALAR will be passed as the third
  1819.                argument of the actual ioctl call.  (If SCALAR has
  1820.                no string value but does have a numeric value,
  1821.                that value will be passed rather than a pointer to
  1822.                the string value.  To guarantee this to be TRUE,
  1823.                add a 0 to the scalar before using it.)  The
  1824.                _p_a_c_k_(_) and _u_n_p_a_c_k_(_) functions are useful for
  1825.                manipulating the values of structures used by
  1826.                _i_o_c_t_l_(_).  The following example sets the erase
  1827.                character to DEL.
  1828.  
  1829.                    rrrreeeeqqqquuuuiiiirrrreeee ''''iiiiooooccccttttllll....pppphhhh'''';;;;
  1830.                    $$$$ggggeeeettttpppp ==== &&&&TTTTIIIIOOOOCCCCGGGGEEEETTTTPPPP;;;;
  1831.                    ddddiiiieeee """"NNNNOOOO TTTTIIIIOOOOCCCCGGGGEEEETTTTPPPP"""" iiiiffff $$$$@@@@ |||||||| !!!!$$$$ggggeeeettttpppp;;;;
  1832.                    $$$$ssssggggttttttttyyyybbbb____tttt ==== """"ccccccccccccccccssss"""";;;;                #### 4444 cccchhhhaaaarrrrssss aaaannnndddd aaaa sssshhhhoooorrrrtttt
  1833.                    iiiiffff ((((iiiiooooccccttttllll((((SSSSTTTTDDDDIIIINNNN,,,,$$$$ggggeeeettttpppp,,,,$$$$ssssggggttttttttyyyybbbb)))))))) {{{{
  1834.                        @@@@aaaarrrryyyy ==== uuuunnnnppppaaaacccckkkk(((($$$$ssssggggttttttttyyyybbbb____tttt,,,,$$$$ssssggggttttttttyyyybbbb))));;;;
  1835.                        $$$$aaaarrrryyyy[[[[2222]]]] ==== 111122227777;;;;
  1836.                        $$$$ssssggggttttttttyyyybbbb ==== ppppaaaacccckkkk(((($$$$ssssggggttttttttyyyybbbb____tttt,,,,@@@@aaaarrrryyyy))));;;;
  1837.                        iiiiooooccccttttllll((((SSSSTTTTDDDDIIIINNNN,,,,&&&&TTTTIIIIOOOOCCCCSSSSEEEETTTTPPPP,,,,$$$$ssssggggttttttttyyyybbbb))))
  1838.                            |||||||| ddddiiiieeee """"CCCCaaaannnn''''tttt iiiiooooccccttttllll:::: $$$$!!!!"""";;;;
  1839.                    }}}}
  1840.  
  1841.                The return value of ioctl (and fcntl) is as
  1842.                follows:
  1843.  
  1844.  
  1845.  
  1846. 16/Feb/96                perl 5.002 with                       28
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1853.  
  1854.  
  1855.                        iiiiffff OOOOSSSS rrrreeeettttuuuurrrrnnnnssss::::          tttthhhheeeennnn PPPPeeeerrrrllll rrrreeeettttuuuurrrrnnnnssss::::
  1856.                            ----1111                    uuuunnnnddddeeeeffffiiiinnnneeeedddd vvvvaaaalllluuuueeee
  1857.                             0000                  ssssttttrrrriiiinnnngggg """"0000 bbbbuuuutttt ttttrrrruuuueeee""""
  1858.                        aaaannnnyyyytttthhhhiiiinnnngggg eeeellllsssseeee               tttthhhhaaaatttt nnnnuuuummmmbbbbeeeerrrr
  1859.  
  1860.                Thus Perl returns TRUE on success and FALSE on
  1861.                failure, yet you can still easily determine the
  1862.                actual value returned by the operating system:
  1863.  
  1864.                    (((($$$$rrrreeeettttvvvvaaaallll ==== iiiiooooccccttttllll((((............)))))))) |||||||| (((($$$$rrrreeeettttvvvvaaaallll ==== ----1111))));;;;
  1865.                    pppprrrriiiinnnnttttffff """"SSSSyyyysssstttteeeemmmm rrrreeeettttuuuurrrrnnnneeeedddd %%%%dddd\\\\nnnn"""",,,, $$$$rrrreeeettttvvvvaaaallll;;;;
  1866.  
  1867.  
  1868.        join EXPR,LIST
  1869.                Joins the separate strings of LIST or ARRAY into a
  1870.                single string with fields separated by the value
  1871.                of EXPR, and returns the string.  Example:
  1872.  
  1873.                    $$$$____ ==== jjjjooooiiiinnnn((((''''::::'''',,,, $$$$llllooooggggiiiinnnn,,,,$$$$ppppaaaasssssssswwwwdddd,,,,$$$$uuuuiiiidddd,,,,$$$$ggggiiiidddd,,,,$$$$ggggccccoooossss,,,,$$$$hhhhoooommmmeeee,,,,$$$$sssshhhheeeellllllll))));;;;
  1874.  
  1875.                See the sssspppplllliiiitttt entry in the _p_e_r_l_f_u_n_c manpage.
  1876.  
  1877.        keys ASSOC_ARRAY
  1878.                Returns a normal array consisting of all the keys
  1879.                of the named associative array.  (In a scalar
  1880.                context, returns the number of keys.)  The keys
  1881.                are returned in an apparently random order, but it
  1882.                is the same order as either the _v_a_l_u_e_s_(_) or _e_a_c_h_(_)
  1883.                function produces (given that the associative
  1884.                array has not been modified).  Here is yet another
  1885.                way to print your environment:
  1886.  
  1887.                    @@@@kkkkeeeeyyyyssss ==== kkkkeeeeyyyyssss %%%%EEEENNNNVVVV;;;;
  1888.                    @@@@vvvvaaaalllluuuueeeessss ==== vvvvaaaalllluuuueeeessss %%%%EEEENNNNVVVV;;;;
  1889.                    wwwwhhhhiiiilllleeee (((($$$$####kkkkeeeeyyyyssss >>>>==== 0000)))) {{{{
  1890.                        pppprrrriiiinnnntttt ppppoooopppp((((@@@@kkkkeeeeyyyyssss)))),,,, ''''===='''',,,, ppppoooopppp((((@@@@vvvvaaaalllluuuueeeessss)))),,,, """"\\\\nnnn"""";;;;
  1891.                    }}}}
  1892.  
  1893.                or how about sorted by key:
  1894.  
  1895.                    ffffoooorrrreeeeaaaacccchhhh $$$$kkkkeeeeyyyy ((((ssssoooorrrrtttt((((kkkkeeeeyyyyssss %%%%EEEENNNNVVVV)))))))) {{{{
  1896.                        pppprrrriiiinnnntttt $$$$kkkkeeeeyyyy,,,, ''''===='''',,,, $$$$EEEENNNNVVVV{{{{$$$$kkkkeeeeyyyy}}}},,,, """"\\\\nnnn"""";;;;
  1897.                    }}}}
  1898.  
  1899.                To sort an array by value, you'll need to use a
  1900.                ssssoooorrrrtttt{{{{}}}} function.  Here's a descending numeric sort
  1901.                of a hash by its values:
  1902.  
  1903.                    ffffoooorrrreeeeaaaacccchhhh $$$$kkkkeeeeyyyy ((((ssssoooorrrrtttt {{{{ $$$$hhhhaaaasssshhhh{{{{$$$$bbbb}}}} <<<<====>>>> $$$$hhhhaaaasssshhhh{{{{$$$$aaaa}}}} }}}} kkkkeeeeyyyyssss %%%%hhhhaaaasssshhhh)))))))) {{{{
  1904.                        pppprrrriiiinnnnttttffff """"%%%%4444dddd %%%%ssss\\\\nnnn"""",,,, $$$$hhhhaaaasssshhhh{{{{$$$$kkkkeeeeyyyy}}}},,,, $$$$kkkkeeeeyyyy;;;;
  1905.                    }}}}
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912. 16/Feb/96                perl 5.002 with                       29
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1919.  
  1920.  
  1921.        kill LIST
  1922.                Sends a signal to a list of processes.  The first
  1923.                element of the list must be the signal to send.
  1924.                Returns the number of processes successfully
  1925.                signaled.
  1926.  
  1927.                    $$$$ccccnnnntttt ==== kkkkiiiillllllll 1111,,,, $$$$cccchhhhiiiilllldddd1111,,,, $$$$cccchhhhiiiilllldddd2222;;;;
  1928.                    kkkkiiiillllllll 9999,,,, @@@@ggggoooonnnneeeerrrrssss;;;;
  1929.  
  1930.                Unlike in the shell, in Perl if the _S_I_G_N_A_L is
  1931.                negative, it kills process groups instead of
  1932.                processes.  (On System V, a negative _P_R_O_C_E_S_S
  1933.                number will also kill process groups, but that's
  1934.                not portable.)  That means you usually want to use
  1935.                positive not negative signals.  You may also use a
  1936.                signal name in quotes.  See the the section on
  1937.                _S_i_g_n_a_l_s in the _p_e_r_l_i_p_c manpage man page for
  1938.                details.
  1939.  
  1940.        last LABEL
  1941.  
  1942.        last    The llllaaaasssstttt command is like the bbbbrrrreeeeaaaakkkk statement in C
  1943.                (as used in loops); it immediately exits the loop
  1944.                in question.  If the LABEL is omitted, the command
  1945.                refers to the innermost enclosing loop.  The
  1946.                ccccoooonnnnttttiiiinnnnuuuueeee block, if any, is not executed:
  1947.  
  1948.                    LLLLIIIINNNNEEEE:::: wwwwhhhhiiiilllleeee ((((<<<<SSSSTTTTDDDDIIIINNNN>>>>)))) {{{{
  1949.                        llllaaaasssstttt LLLLIIIINNNNEEEE iiiiffff ////^^^^$$$$////;;;;      #### eeeexxxxiiiitttt wwwwhhhheeeennnn ddddoooonnnneeee wwwwiiiitttthhhh hhhheeeeaaaaddddeeeerrrr
  1950.                        ............
  1951.                    }}}}
  1952.  
  1953.  
  1954.        lc EXPR Returns an lowercased version of EXPR.  This is
  1955.                the internal function implementing the \L escape
  1956.                in double-quoted strings.  Should respect any
  1957.                POSIX _s_e_t_l_o_c_a_l_e_(_) settings.
  1958.  
  1959.        lcfirst EXPR
  1960.                Returns the value of EXPR with the first character
  1961.                lowercased.  This is the internal function
  1962.                implementing the \l escape in double-quoted
  1963.                strings.  Should respect any POSIX _s_e_t_l_o_c_a_l_e_(_)
  1964.                settings.
  1965.  
  1966.        length EXPR
  1967.                Returns the length in characters of the value of
  1968.                EXPR.  If EXPR is omitted, returns length of $$$$____.
  1969.  
  1970.        link OLDFILE,NEWFILE
  1971.                Creates a new filename linked to the old filename.
  1972.                Returns 1 for success, 0 otherwise.
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978. 16/Feb/96                perl 5.002 with                       30
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  1985.  
  1986.  
  1987.        listen SOCKET,QUEUESIZE
  1988.                Does the same thing that the listen system call
  1989.                does.  Returns TRUE if it succeeded, FALSE
  1990.                otherwise.  See example in the section on _S_o_c_k_e_t_s_:
  1991.                _C_l_i_e_n_t_/_S_e_r_v_e_r _C_o_m_m_u_n_i_c_a_t_i_o_n in the _p_e_r_l_i_p_c
  1992.                manpage.
  1993.  
  1994.        local EXPR
  1995.                A local modifies the listed variables to be local
  1996.                to the enclosing block, subroutine, eeeevvvvaaaallll{{{{}}}} or ddddoooo.
  1997.                If more than one value is listed, the list must be
  1998.                placed in parens.  See L<perlsub/"Temporary Values
  1999.                via local()"> for details.
  2000.  
  2001.                But you really probably want to be using _m_y_(_)
  2002.                instead, because _l_o_c_a_l_(_) isn't what most people
  2003.                think of as "local").  See L<perlsub/"Private
  2004.                Variables via my()"> for details.
  2005.  
  2006.        localtime EXPR
  2007.                Converts a time as returned by the time function
  2008.                to a 9-element array with the time analyzed for
  2009.                the local timezone.  Typically used as follows:
  2010.  
  2011.                    (((($$$$sssseeeecccc,,,,$$$$mmmmiiiinnnn,,,,$$$$hhhhoooouuuurrrr,,,,$$$$mmmmddddaaaayyyy,,,,$$$$mmmmoooonnnn,,,,$$$$yyyyeeeeaaaarrrr,,,,$$$$wwwwddddaaaayyyy,,,,$$$$yyyyddddaaaayyyy,,,,$$$$iiiissssddddsssstttt)))) ====
  2012.                                                                llllooooccccaaaallllttttiiiimmmmeeee((((ttttiiiimmmmeeee))));;;;
  2013.  
  2014.                All array elements are numeric, and come straight
  2015.                out of a struct tm.  In particular this means that
  2016.                $$$$mmmmoooonnnn has the range 0..11 and $$$$wwwwddddaaaayyyy has the range
  2017.                0..6.  If EXPR is omitted, does _l_o_c_a_l_t_i_m_e(time).
  2018.  
  2019.                In a scalar context, prints out the _c_t_i_m_e(3)
  2020.                value:
  2021.  
  2022.                    $$$$nnnnoooowwww____ssssttttrrrriiiinnnngggg ==== llllooooccccaaaallllttttiiiimmmmeeee;;;;  #### eeee....gggg.... """"TTTThhhhuuuu OOOOcccctttt 11113333 00004444::::55554444::::33334444 1111999999994444""""
  2023.  
  2024.                See also the ttttiiiimmmmeeeellllooooccccaaaallll entry in the _p_e_r_l_m_o_d
  2025.                manpage and the _s_t_r_f_t_i_m_e(3) function available via
  2026.                the POSIX modulie.
  2027.  
  2028.        log EXPR
  2029.                Returns logarithm (base _e) of EXPR.  If EXPR is
  2030.                omitted, returns log of $$$$____.
  2031.  
  2032.        lstat FILEHANDLE
  2033.  
  2034.        lstat EXPR
  2035.                Does the same thing as the _s_t_a_t_(_) function, but
  2036.                stats a symbolic link instead of the file the
  2037.                symbolic link points to.  If symbolic links are
  2038.                unimplemented on your system, a normal _s_t_a_t_(_) is
  2039.                done.
  2040.  
  2041.  
  2042.  
  2043.  
  2044. 16/Feb/96                perl 5.002 with                       31
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2051.  
  2052.  
  2053.        m//     The match operator.  See the _p_e_r_l_o_p manpage.
  2054.  
  2055.        map BLOCK LIST
  2056.  
  2057.        map EXPR,LIST
  2058.                Evaluates the BLOCK or EXPR for each element of
  2059.                LIST (locally setting $$$$____ to each element) and
  2060.                returns the list value composed of the results of
  2061.                each such evaluation.  Evaluates BLOCK or EXPR in
  2062.                a list context, so each element of LIST may
  2063.                produce zero, one, or more elements in the
  2064.                returned value.
  2065.  
  2066.                    @@@@cccchhhhaaaarrrrssss ==== mmmmaaaapppp((((cccchhhhrrrr,,,, @@@@nnnnuuuummmmssss))));;;;
  2067.  
  2068.                translates a list of numbers to the corresponding
  2069.                characters.  And
  2070.  
  2071.                    %%%%hhhhaaaasssshhhh ==== mmmmaaaapppp {{{{ ggggeeeettttkkkkeeeeyyyy(((($$$$____)))) ====>>>> $$$$____ }}}} @@@@aaaarrrrrrrraaaayyyy;;;;
  2072.  
  2073.                is just a funny way to write
  2074.  
  2075.                    %%%%hhhhaaaasssshhhh ==== (((())));;;;
  2076.                    ffffoooorrrreeeeaaaacccchhhh $$$$____ ((((@@@@aaaarrrrrrrraaaayyyy)))) {{{{
  2077.                        $$$$hhhhaaaasssshhhh{{{{ggggeeeettttkkkkeeeeyyyy(((($$$$____))))}}}} ==== $$$$____;;;;
  2078.                    }}}}
  2079.  
  2080.  
  2081.        mkdir FILENAME,MODE
  2082.                Creates the directory specified by FILENAME, with
  2083.                permissions specified by MODE (as modified by
  2084.                umask).  If it succeeds it returns 1, otherwise it
  2085.                returns 0 and sets $! (errno).
  2086.  
  2087.        msgctl ID,CMD,ARG
  2088.                Calls the System V IPC function _m_s_g_c_t_l(2).  If CMD
  2089.                is &IPC_STAT, then ARG must be a variable which
  2090.                will hold the returned msqid_ds structure.
  2091.                Returns like ioctl: the undefined value for error,
  2092.                "0 but true" for zero, or the actual return value
  2093.                otherwise.
  2094.  
  2095.        msgget KEY,FLAGS
  2096.                Calls the System V IPC function _m_s_g_g_e_t(2).
  2097.                Returns the message queue id, or the undefined
  2098.                value if there is an error.
  2099.  
  2100.        msgsnd ID,MSG,FLAGS
  2101.                Calls the System V IPC function msgsnd to send the
  2102.                message MSG to the message queue ID.  MSG must
  2103.                begin with the long integer message type, which
  2104.                may be created with ppppaaaacccckkkk((((""""llll"""",,,, $$$$ttttyyyyppppeeee)))).  Returns
  2105.                TRUE if successful, or FALSE if there is an error.
  2106.  
  2107.  
  2108.  
  2109.  
  2110. 16/Feb/96                perl 5.002 with                       32
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2117.  
  2118.  
  2119.        msgrcv ID,VAR,SIZE,TYPE,FLAGS
  2120.                Calls the System V IPC function msgrcv to receive
  2121.                a message from message queue ID into variable VAR
  2122.                with a maximum message size of SIZE.  Note that if
  2123.                a message is received, the message type will be
  2124.                the first thing in VAR, and the maximum length of
  2125.                VAR is SIZE plus the size of the message type.
  2126.                Returns TRUE if successful, or FALSE if there is
  2127.                an error.
  2128.  
  2129.        my EXPR A "my" declares the listed variables to be local
  2130.                (lexically) to the enclosing block, subroutine,
  2131.                eeeevvvvaaaallll, or ddddoooo////rrrreeeeqqqquuuuiiiirrrreeee////uuuusssseeee'd file.  If more than one
  2132.                value is listed, the list must be placed in
  2133.                parens.  See the section on _P_r_i_v_a_t_e _V_a_r_i_a_b_l_e_s _v_i_a
  2134.                _m_y_(_) in the _p_e_r_l_s_u_b manpage for details.
  2135.  
  2136.        next LABEL
  2137.  
  2138.        next    The nnnneeeexxxxtttt command is like the ccccoooonnnnttttiiiinnnnuuuueeee statement in
  2139.                C; it starts the next iteration of the loop:
  2140.  
  2141.                    LLLLIIIINNNNEEEE:::: wwwwhhhhiiiilllleeee ((((<<<<SSSSTTTTDDDDIIIINNNN>>>>)))) {{{{
  2142.                        nnnneeeexxxxtttt LLLLIIIINNNNEEEE iiiiffff ////^^^^####////;;;;      #### ddddiiiissssccccaaaarrrrdddd ccccoooommmmmmmmeeeennnnttttssss
  2143.                        ............
  2144.                    }}}}
  2145.  
  2146.                Note that if there were a ccccoooonnnnttttiiiinnnnuuuueeee block on the
  2147.                above, it would get executed even on discarded
  2148.                lines.  If the LABEL is omitted, the command
  2149.                refers to the innermost enclosing loop.
  2150.  
  2151.        no Module LIST
  2152.                See the "use" function, which "no" is the opposite
  2153.                of.
  2154.  
  2155.        oct EXPR
  2156.                Interprets EXPR as an octal string and returns the
  2157.                corresponding decimal value.  (If EXPR happens to
  2158.                start off with 0x, interprets it as a hex string
  2159.                instead.)  The following will handle decimal,
  2160.                octal, and hex in the standard Perl or C notation:
  2161.  
  2162.                    $$$$vvvvaaaallll ==== oooocccctttt(((($$$$vvvvaaaallll)))) iiiiffff $$$$vvvvaaaallll ====~~~~ ////^^^^0000////;;;;
  2163.  
  2164.                If EXPR is omitted, uses $$$$____.
  2165.  
  2166.        open FILEHANDLE,EXPR
  2167.  
  2168.        open FILEHANDLE
  2169.                Opens the file whose filename is given by EXPR,
  2170.                and associates it with FILEHANDLE.  If FILEHANDLE
  2171.                is an expression, its value is used as the name of
  2172.                the real filehandle wanted.  If EXPR is omitted,
  2173.  
  2174.  
  2175.  
  2176. 16/Feb/96                perl 5.002 with                       33
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2183.  
  2184.  
  2185.                the scalar variable of the same name as the
  2186.                FILEHANDLE contains the filename.  If the filename
  2187.                begins with "<" or nothing, the file is opened for
  2188.                input.  If the filename begins with ">", the file
  2189.                is opened for output.  If the filename begins with
  2190.                ">>", the file is opened for appending.  You can
  2191.                put a '+' in front of the '>' or '<' to indicate
  2192.                that you want both read and write access to the
  2193.                file; thus '+<' is usually preferred for
  2194.                read/write updates--the '+>' mode would clobber
  2195.                the file first.  These correspond to the _f_o_p_e_n(3)
  2196.                modes of 'r', 'r+', 'w', 'w+', 'a', and 'a+'.
  2197.  
  2198.                If the filename begins with "|", the filename is
  2199.                interpreted as a command to which output is to be
  2200.                piped, and if the filename ends with a "|", the
  2201.                filename is interpreted See the section on _U_s_i_n_g
  2202.                _o_p_e_n_(_) _f_o_r _I_P_C in the _p_e_r_l_i_p_c manpage for more
  2203.                examples of this.  as command which pipes input to
  2204.                us.  (You may not have a raw _o_p_e_n_(_) to a command
  2205.                that pipes both in _a_n_d out, but see See the _o_p_e_n_2
  2206.                manpage, the _o_p_e_n_3 manpage, and the section on
  2207.                _B_i_d_i_r_e_c_t_i_o_n_a_l _C_o_m_m_u_n_i_c_a_t_i_o_n in the _p_e_r_l_i_p_c manpage
  2208.                for alternatives.)
  2209.  
  2210.                Opening '-' opens STDIN and opening '>-' opens
  2211.                STDOUT.  Open returns non-zero upon success, the
  2212.                undefined value otherwise.  If the open involved a
  2213.                pipe, the return value happens to be the pid of
  2214.                the subprocess.
  2215.  
  2216.                If you're unfortunate enough to be running Perl on
  2217.                a system that distinguishes between text files and
  2218.                binary files (modern operating systems don't
  2219.                care), then you should check out the bbbbiiiinnnnmmmmooooddddeeee entry
  2220.                elsewhere in this documentfor tips for dealing
  2221.                with this.  The key distinction between systems
  2222.                that need binmode and those that don't is their
  2223.                text file formats.  Systems like Unix and Plan9
  2224.                that delimit lines with a single character, and
  2225.                that encode that character in C as '\n', do not
  2226.                need bbbbiiiinnnnmmmmooooddddeeee.  The rest need it.
  2227.  
  2228.                Examples:
  2229.  
  2230.                    $$$$AAAARRRRTTTTIIIICCCCLLLLEEEE ==== 111100000000;;;;
  2231.                    ooooppppeeeennnn AAAARRRRTTTTIIIICCCCLLLLEEEE oooorrrr ddddiiiieeee """"CCCCaaaannnn''''tttt ffffiiiinnnndddd aaaarrrrttttiiiicccclllleeee $$$$AAAARRRRTTTTIIIICCCCLLLLEEEE:::: $$$$!!!!\\\\nnnn"""";;;;
  2232.                    wwwwhhhhiiiilllleeee ((((<<<<AAAARRRRTTTTIIIICCCCLLLLEEEE>>>>)))) {{{{............
  2233.  
  2234.                    ooooppppeeeennnn((((LLLLOOOOGGGG,,,, ''''>>>>>>>>////uuuussssrrrr////ssssppppoooooooollll////nnnneeeewwwwssss////ttttwwwwiiiittttlllloooogggg''''))));;;; #### ((((lllloooogggg iiiissss rrrreeeesssseeeerrrrvvvveeeedddd))))
  2235.  
  2236.                    ooooppppeeeennnn((((DDDDBBBBAAAASSSSEEEE,,,, ''''++++<<<<ddddbbbbaaaasssseeee....mmmmiiiinnnneeee''''))));;;;            #### ooooppppeeeennnn ffffoooorrrr uuuuppppddddaaaatttteeee
  2237.  
  2238.                    ooooppppeeeennnn((((AAAARRRRTTTTIIIICCCCLLLLEEEE,,,, """"ccccaaaaeeeessssaaaarrrr <<<<$$$$aaaarrrrttttiiiicccclllleeee ||||""""))));;;;    #### ddddeeeeccccrrrryyyypppptttt aaaarrrrttttiiiicccclllleeee
  2239.  
  2240.  
  2241.  
  2242. 16/Feb/96                perl 5.002 with                       34
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2249.  
  2250.  
  2251.                    ooooppppeeeennnn((((EEEEXXXXTTTTRRRRAAAACCCCTTTT,,,, """"||||ssssoooorrrrtttt >>>>////ttttmmmmpppp////TTTTmmmmpppp$$$$$$$$""""))));;;;     #### $$$$$$$$ iiiissss oooouuuurrrr pppprrrroooocccceeeessssssss iiiidddd
  2252.  
  2253.                    #### pppprrrroooocccceeeessssssss aaaarrrrgggguuuummmmeeeennnntttt lllliiiisssstttt ooooffff ffffiiiilllleeeessss aaaalllloooonnnngggg wwwwiiiitttthhhh aaaannnnyyyy iiiinnnncccclllluuuuddddeeeessss
  2254.  
  2255.                    ffffoooorrrreeeeaaaacccchhhh $$$$ffffiiiilllleeee ((((@@@@AAAARRRRGGGGVVVV)))) {{{{
  2256.                        pppprrrroooocccceeeessssssss(((($$$$ffffiiiilllleeee,,,, ''''ffffhhhh00000000''''))));;;;
  2257.                    }}}}
  2258.  
  2259.                    ssssuuuubbbb pppprrrroooocccceeeessssssss {{{{
  2260.                        llllooooccccaaaallll(((($$$$ffffiiiilllleeeennnnaaaammmmeeee,,,, $$$$iiiinnnnppppuuuutttt)))) ==== @@@@____;;;;
  2261.                        $$$$iiiinnnnppppuuuutttt++++++++;;;;               #### tttthhhhiiiissss iiiissss aaaa ssssttttrrrriiiinnnngggg iiiinnnnccccrrrreeeemmmmeeeennnntttt
  2262.                        uuuunnnnlllleeeessssssss ((((ooooppppeeeennnn(((($$$$iiiinnnnppppuuuutttt,,,, $$$$ffffiiiilllleeeennnnaaaammmmeeee)))))))) {{{{
  2263.                            pppprrrriiiinnnntttt SSSSTTTTDDDDEEEERRRRRRRR """"CCCCaaaannnn''''tttt ooooppppeeeennnn $$$$ffffiiiilllleeeennnnaaaammmmeeee:::: $$$$!!!!\\\\nnnn"""";;;;
  2264.                            rrrreeeettttuuuurrrrnnnn;;;;
  2265.                        }}}}
  2266.  
  2267.                        wwwwhhhhiiiilllleeee ((((<<<<$$$$iiiinnnnppppuuuutttt>>>>)))) {{{{              #### nnnnooootttteeee uuuusssseeee ooooffff iiiinnnnddddiiiirrrreeeeccccttttiiiioooonnnn
  2268.                            iiiiffff ((((////^^^^####iiiinnnncccclllluuuuddddeeee """"((((....****))))""""////)))) {{{{
  2269.                                pppprrrroooocccceeeessssssss(((($$$$1111,,,, $$$$iiiinnnnppppuuuutttt))));;;;
  2270.                                nnnneeeexxxxtttt;;;;
  2271.                            }}}}
  2272.                            ............         #### wwwwhhhhaaaatttteeeevvvveeeerrrr
  2273.                        }}}}
  2274.                    }}}}
  2275.  
  2276.                You may also, in the Bourne shell tradition,
  2277.                specify an EXPR beginning with ">&", in which case
  2278.                the rest of the string is interpreted as the name
  2279.                of a filehandle (or file descriptor, if numeric)
  2280.                which is to be duped and opened.  You may use &
  2281.                after >, >>, <, +>, +>> and +<.  The mode you
  2282.                specify should match the mode of the original
  2283.                filehandle.  (Duping a filehandle does not take
  2284.                into acount any existing contents of stdio
  2285.                buffers.)  Here is a script that saves, redirects,
  2286.                and restores STDOUT and STDERR:
  2287.  
  2288.                    ####!!!!////uuuussssrrrr////bbbbiiiinnnn////ppppeeeerrrrllll
  2289.                    ooooppppeeeennnn((((SSSSAAAAVVVVEEEEOOOOUUUUTTTT,,,, """">>>>&&&&SSSSTTTTDDDDOOOOUUUUTTTT""""))));;;;
  2290.                    ooooppppeeeennnn((((SSSSAAAAVVVVEEEEEEEERRRRRRRR,,,, """">>>>&&&&SSSSTTTTDDDDEEEERRRRRRRR""""))));;;;
  2291.  
  2292.                    ooooppppeeeennnn((((SSSSTTTTDDDDOOOOUUUUTTTT,,,, """">>>>ffffoooooooo....oooouuuutttt"""")))) |||||||| ddddiiiieeee """"CCCCaaaannnn''''tttt rrrreeeeddddiiiirrrreeeecccctttt ssssttttddddoooouuuutttt"""";;;;
  2293.                    ooooppppeeeennnn((((SSSSTTTTDDDDEEEERRRRRRRR,,,, """">>>>&&&&SSSSTTTTDDDDOOOOUUUUTTTT"""")))) |||||||| ddddiiiieeee """"CCCCaaaannnn''''tttt dddduuuupppp ssssttttddddoooouuuutttt"""";;;;
  2294.  
  2295.                    sssseeeelllleeeecccctttt((((SSSSTTTTDDDDEEEERRRRRRRR))));;;; $$$$|||| ==== 1111;;;;     #### mmmmaaaakkkkeeee uuuunnnnbbbbuuuuffffffffeeeerrrreeeedddd
  2296.                    sssseeeelllleeeecccctttt((((SSSSTTTTDDDDOOOOUUUUTTTT))));;;; $$$$|||| ==== 1111;;;;     #### mmmmaaaakkkkeeee uuuunnnnbbbbuuuuffffffffeeeerrrreeeedddd
  2297.  
  2298.                    pppprrrriiiinnnntttt SSSSTTTTDDDDOOOOUUUUTTTT """"ssssttttddddoooouuuutttt 1111\\\\nnnn"""";;;;  #### tttthhhhiiiissss wwwwoooorrrrkkkkssss ffffoooorrrr
  2299.                    pppprrrriiiinnnntttt SSSSTTTTDDDDEEEERRRRRRRR """"ssssttttddddeeeerrrrrrrr 1111\\\\nnnn"""";;;;  #### ssssuuuubbbbpppprrrroooocccceeeesssssssseeeessss ttttoooooooo
  2300.  
  2301.                    cccclllloooosssseeee((((SSSSTTTTDDDDOOOOUUUUTTTT))));;;;
  2302.                    cccclllloooosssseeee((((SSSSTTTTDDDDEEEERRRRRRRR))));;;;
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308. 16/Feb/96                perl 5.002 with                       35
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2315.  
  2316.  
  2317.                    ooooppppeeeennnn((((SSSSTTTTDDDDOOOOUUUUTTTT,,,, """">>>>&&&&SSSSAAAAVVVVEEEEOOOOUUUUTTTT""""))));;;;
  2318.                    ooooppppeeeennnn((((SSSSTTTTDDDDEEEERRRRRRRR,,,, """">>>>&&&&SSSSAAAAVVVVEEEEEEEERRRRRRRR""""))));;;;
  2319.  
  2320.                    pppprrrriiiinnnntttt SSSSTTTTDDDDOOOOUUUUTTTT """"ssssttttddddoooouuuutttt 2222\\\\nnnn"""";;;;
  2321.                    pppprrrriiiinnnntttt SSSSTTTTDDDDEEEERRRRRRRR """"ssssttttddddeeeerrrrrrrr 2222\\\\nnnn"""";;;;
  2322.  
  2323.                If you specify "<&=N", where N is a number, then
  2324.                Perl will do an equivalent of C's _f_d_o_p_e_n_(_) of that
  2325.                file descriptor; this is more parsimonious of file
  2326.                descriptors.  For example:
  2327.  
  2328.                    ooooppppeeeennnn((((FFFFIIIILLLLEEEEHHHHAAAANNNNDDDDLLLLEEEE,,,, """"<<<<&&&&====$$$$ffffdddd""""))))
  2329.  
  2330.                If you open a pipe on the command "-", i.e. either
  2331.                "|-" or "-|", then there is an implicit fork done,
  2332.                and the return value of open is the pid of the
  2333.                child within the parent process, and 0 within the
  2334.                child process.  (Use _d_e_f_i_n_e_d($pid) to determine
  2335.                whether the open was successful.)  The filehandle
  2336.                behaves normally for the parent, but i/o to that
  2337.                filehandle is piped from/to the STDOUT/STDIN of
  2338.                the child process.  In the child process the
  2339.                filehandle isn't opened--i/o happens from/to the
  2340.                new STDOUT or STDIN.  Typically this is used like
  2341.                the normal piped open when you want to exercise
  2342.                more control over just how the pipe command gets
  2343.                executed, such as when you are running setuid, and
  2344.                don't want to have to scan shell commands for
  2345.                metacharacters.  The following pairs are more or
  2346.                less equivalent:
  2347.  
  2348.                    ooooppppeeeennnn((((FFFFOOOOOOOO,,,, """"||||ttttrrrr ''''[[[[aaaa----zzzz]]]]'''' ''''[[[[AAAA----ZZZZ]]]]''''""""))));;;;
  2349.                    ooooppppeeeennnn((((FFFFOOOOOOOO,,,, """"||||----"""")))) |||||||| eeeexxxxeeeecccc ''''ttttrrrr'''',,,, ''''[[[[aaaa----zzzz]]]]'''',,,, ''''[[[[AAAA----ZZZZ]]]]'''';;;;
  2350.  
  2351.                    ooooppppeeeennnn((((FFFFOOOOOOOO,,,, """"ccccaaaatttt ----nnnn ''''$$$$ffffiiiilllleeee''''||||""""))));;;;
  2352.                    ooooppppeeeennnn((((FFFFOOOOOOOO,,,, """"----||||"""")))) |||||||| eeeexxxxeeeecccc ''''ccccaaaatttt'''',,,, ''''----nnnn'''',,,, $$$$ffffiiiilllleeee;;;;
  2353.  
  2354.                See the section on _S_a_f_e _P_i_p_e _O_p_e_n_s in the _p_e_r_l_i_p_c
  2355.                manpage for more examples of this.
  2356.  
  2357.                Explicitly closing any piped filehandle causes the
  2358.                parent process to wait for the child to finish,
  2359.                and returns the status value in $?.  Note: on any
  2360.                operation which may do a fork, unflushed buffers
  2361.                remain unflushed in both processes, which means
  2362.                you may need to set $| to avoid duplicate output.
  2363.  
  2364.                Using the FileHandle constructor from the
  2365.                FileHandle package, you can generate anonymous
  2366.                filehandles which have the scope of whatever
  2367.                variables hold references to them, and
  2368.                automatically close whenever and however you leave
  2369.                that scope:
  2370.  
  2371.  
  2372.  
  2373.  
  2374. 16/Feb/96                perl 5.002 with                       36
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2381.  
  2382.  
  2383.                    uuuusssseeee FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
  2384.                    ............
  2385.                    ssssuuuubbbb rrrreeeeaaaadddd____mmmmyyyyffffiiiilllleeee____mmmmuuuunnnnggggeeeedddd {{{{
  2386.                        mmmmyyyy $$$$AAAALLLLLLLL ==== sssshhhhiiiifffftttt;;;;
  2387.                        mmmmyyyy $$$$hhhhaaaannnnddddlllleeee ==== nnnneeeewwww FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
  2388.                        ooooppppeeeennnn(((($$$$hhhhaaaannnnddddlllleeee,,,, """"mmmmyyyyffffiiiilllleeee"""")))) oooorrrr ddddiiiieeee """"mmmmyyyyffffiiiilllleeee:::: $$$$!!!!"""";;;;
  2389.                        $$$$ffffiiiirrrrsssstttt ==== <<<<$$$$hhhhaaaannnnddddlllleeee>>>>
  2390.                            oooorrrr rrrreeeettttuuuurrrrnnnn (((())));;;;     #### AAAAuuuuttttoooommmmaaaattttiiiiccccaaaallllllllyyyy cccclllloooosssseeeedddd hhhheeeerrrreeee....
  2391.                        mmmmuuuunnnngggg $$$$ffffiiiirrrrsssstttt oooorrrr ddddiiiieeee """"mmmmuuuunnnngggg ffffaaaaiiiilllleeeedddd"""";;;;       #### OOOOrrrr hhhheeeerrrreeee....
  2392.                        rrrreeeettttuuuurrrrnnnn $$$$ffffiiiirrrrsssstttt,,,, <<<<$$$$hhhhaaaannnnddddlllleeee>>>> iiiiffff $$$$AAAALLLLLLLL;;;;       #### OOOOrrrr hhhheeeerrrreeee....
  2393.                        $$$$ffffiiiirrrrsssstttt;;;;                                 #### OOOOrrrr hhhheeeerrrreeee....
  2394.                    }}}}
  2395.  
  2396.                The filename that is passed to open will have
  2397.                leading and trailing whitespace deleted.  In order
  2398.                to open a file with arbitrary weird characters in
  2399.                it, it's necessary to protect any leading and
  2400.                trailing whitespace thusly:
  2401.  
  2402.                    $$$$ffffiiiilllleeee ====~~~~ ssss####^^^^((((\\\\ssss))))####....////$$$$1111####;;;;
  2403.                    ooooppppeeeennnn((((FFFFOOOOOOOO,,,, """"<<<< $$$$ffffiiiilllleeee\\\\0000""""))));;;;
  2404.  
  2405.                If you want a "real" C _o_p_e_n_(_) (see the _o_p_e_n_(_2_)
  2406.                manpage on your system), then you should use the
  2407.                _s_y_s_o_p_e_n_(_) function.  This is another way to
  2408.                protect your filenames from interpretation.  For
  2409.                example:
  2410.  
  2411.                    uuuusssseeee FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
  2412.                    ssssyyyyssssooooppppeeeennnn((((HHHHAAAANNNNDDDDLLLLEEEE,,,, $$$$ppppaaaatttthhhh,,,, OOOO____RRRRDDDDWWWWRRRR||||OOOO____CCCCRRRREEEEAAAATTTT||||OOOO____EEEEXXXXCCCCLLLL,,,, 0000777700000000))))
  2413.                        oooorrrr ddddiiiieeee """"ssssyyyyssssooooppppeeeennnn $$$$ppppaaaatttthhhh:::: $$$$!!!!"""";;;;
  2414.                    HHHHAAAANNNNDDDDLLLLEEEE---->>>>aaaauuuuttttoooofffflllluuuusssshhhh((((1111))));;;;
  2415.                    HHHHAAAANNNNDDDDLLLLEEEE---->>>>pppprrrriiiinnnntttt((((""""ssssttttuuuuffffffff $$$$$$$$\\\\nnnn""""))));;;;
  2416.                    sssseeeeeeeekkkk((((HHHHAAAANNNNDDDDLLLLEEEE,,,, 0000,,,, 0000))));;;;
  2417.                    pppprrrriiiinnnntttt """"FFFFiiiilllleeee ccccoooonnnnttttaaaaiiiinnnnssss:::: """",,,, <<<<HHHHAAAANNNNDDDDLLLLEEEE>>>>;;;;
  2418.  
  2419.                See the sssseeeeeeeekkkk(((()))) entry elsewhere in this documentfor
  2420.                some details about mixing reading and writing.
  2421.  
  2422.        opendir DIRHANDLE,EXPR
  2423.                Opens a directory named EXPR for processing by
  2424.                _r_e_a_d_d_i_r_(_), _t_e_l_l_d_i_r_(_), _s_e_e_k_d_i_r_(_), _r_e_w_i_n_d_d_i_r_(_) and
  2425.                _c_l_o_s_e_d_i_r_(_).  Returns TRUE if successful.
  2426.                DIRHANDLEs have their own namespace separate from
  2427.                FILEHANDLEs.
  2428.  
  2429.        ord EXPR
  2430.                Returns the numeric ascii value of the first
  2431.                character of EXPR.  If EXPR is omitted, uses $$$$____.
  2432.  
  2433.        pack TEMPLATE,LIST
  2434.                Takes an array or list of values and packs it into
  2435.                a binary structure, returning the string
  2436.                containing the structure.  The TEMPLATE is a
  2437.  
  2438.  
  2439.  
  2440. 16/Feb/96                perl 5.002 with                       37
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2447.  
  2448.  
  2449.                sequence of characters that give the order and
  2450.                type of values, as follows:
  2451.  
  2452.                    AAAA   AAAAnnnn aaaasssscccciiiiiiii ssssttttrrrriiiinnnngggg,,,, wwwwiiiillllllll bbbbeeee ssssppppaaaacccceeee ppppaaaaddddddddeeeedddd....
  2453.                    aaaa   AAAAnnnn aaaasssscccciiiiiiii ssssttttrrrriiiinnnngggg,,,, wwwwiiiillllllll bbbbeeee nnnnuuuullllllll ppppaaaaddddddddeeeedddd....
  2454.                    bbbb   AAAA bbbbiiiitttt ssssttttrrrriiiinnnngggg ((((aaaasssscccceeeennnnddddiiiinnnngggg bbbbiiiitttt oooorrrrddddeeeerrrr,,,, lllliiiikkkkeeee vvvveeeecccc(((())))))))....
  2455.                    BBBB   AAAA bbbbiiiitttt ssssttttrrrriiiinnnngggg ((((ddddeeeesssscccceeeennnnddddiiiinnnngggg bbbbiiiitttt oooorrrrddddeeeerrrr))))....
  2456.                    hhhh   AAAA hhhheeeexxxx ssssttttrrrriiiinnnngggg ((((lllloooowwww nnnnyyyybbbbbbbblllleeee ffffiiiirrrrsssstttt))))....
  2457.                    HHHH   AAAA hhhheeeexxxx ssssttttrrrriiiinnnngggg ((((hhhhiiiigggghhhh nnnnyyyybbbbbbbblllleeee ffffiiiirrrrsssstttt))))....
  2458.  
  2459.                    cccc   AAAA ssssiiiiggggnnnneeeedddd cccchhhhaaaarrrr vvvvaaaalllluuuueeee....
  2460.                    CCCC   AAAAnnnn uuuunnnnssssiiiiggggnnnneeeedddd cccchhhhaaaarrrr vvvvaaaalllluuuueeee....
  2461.                    ssss   AAAA ssssiiiiggggnnnneeeedddd sssshhhhoooorrrrtttt vvvvaaaalllluuuueeee....
  2462.                    SSSS   AAAAnnnn uuuunnnnssssiiiiggggnnnneeeedddd sssshhhhoooorrrrtttt vvvvaaaalllluuuueeee....
  2463.                    iiii   AAAA ssssiiiiggggnnnneeeedddd iiiinnnntttteeeeggggeeeerrrr vvvvaaaalllluuuueeee....
  2464.                    IIII   AAAAnnnn uuuunnnnssssiiiiggggnnnneeeedddd iiiinnnntttteeeeggggeeeerrrr vvvvaaaalllluuuueeee....
  2465.                    llll   AAAA ssssiiiiggggnnnneeeedddd lllloooonnnngggg vvvvaaaalllluuuueeee....
  2466.                    LLLL   AAAAnnnn uuuunnnnssssiiiiggggnnnneeeedddd lllloooonnnngggg vvvvaaaalllluuuueeee....
  2467.  
  2468.                    nnnn   AAAA sssshhhhoooorrrrtttt iiiinnnn """"nnnneeeettttwwwwoooorrrrkkkk"""" oooorrrrddddeeeerrrr....
  2469.                    NNNN   AAAA lllloooonnnngggg iiiinnnn """"nnnneeeettttwwwwoooorrrrkkkk"""" oooorrrrddddeeeerrrr....
  2470.                    vvvv   AAAA sssshhhhoooorrrrtttt iiiinnnn """"VVVVAAAAXXXX"""" ((((lllliiiittttttttlllleeee----eeeennnnddddiiiiaaaannnn)))) oooorrrrddddeeeerrrr....
  2471.                    VVVV   AAAA lllloooonnnngggg iiiinnnn """"VVVVAAAAXXXX"""" ((((lllliiiittttttttlllleeee----eeeennnnddddiiiiaaaannnn)))) oooorrrrddddeeeerrrr....
  2472.  
  2473.                    ffff   AAAA ssssiiiinnnngggglllleeee----pppprrrreeeecccciiiissssiiiioooonnnn ffffllllooooaaaatttt iiiinnnn tttthhhheeee nnnnaaaattttiiiivvvveeee ffffoooorrrrmmmmaaaatttt....
  2474.                    dddd   AAAA ddddoooouuuubbbblllleeee----pppprrrreeeecccciiiissssiiiioooonnnn ffffllllooooaaaatttt iiiinnnn tttthhhheeee nnnnaaaattttiiiivvvveeee ffffoooorrrrmmmmaaaatttt....
  2475.  
  2476.                    pppp   AAAA ppppooooiiiinnnntttteeeerrrr ttttoooo aaaa nnnnuuuullllllll----tttteeeerrrrmmmmiiiinnnnaaaatttteeeedddd ssssttttrrrriiiinnnngggg....
  2477.                    PPPP   AAAA ppppooooiiiinnnntttteeeerrrr ttttoooo aaaa ssssttttrrrruuuuccccttttuuuurrrreeee ((((ffffiiiixxxxeeeedddd----lllleeeennnnggggtttthhhh ssssttttrrrriiiinnnngggg))))....
  2478.  
  2479.                    uuuu   AAAA uuuuuuuueeeennnnccccooooddddeeeedddd ssssttttrrrriiiinnnngggg....
  2480.  
  2481.                    xxxx   AAAA nnnnuuuullllllll bbbbyyyytttteeee....
  2482.                    XXXX   BBBBaaaacccckkkk uuuupppp aaaa bbbbyyyytttteeee....
  2483.                    @@@@   NNNNuuuullllllll ffffiiiillllllll ttttoooo aaaabbbbssssoooolllluuuutttteeee ppppoooossssiiiittttiiiioooonnnn....
  2484.  
  2485.                Each letter may optionally be followed by a number
  2486.                which gives a repeat count.  With all types except
  2487.                "a", "A", "b", "B", "h" and "H", and "P" the pack
  2488.                function will gobble up that many values from the
  2489.                LIST.  A * for the repeat count means to use
  2490.                however many items are left.  The "a" and "A"
  2491.                types gobble just one value, but pack it as a
  2492.                string of length count, padding with nulls or
  2493.                spaces as necessary.  (When unpacking, "A" strips
  2494.                trailing spaces and nulls, but "a" does not.)
  2495.                Likewise, the "b" and "B" fields pack a string
  2496.                that many bits long.  The "h" and "H" fields pack
  2497.                a string that many nybbles long.  The "P" packs a
  2498.                pointer to a structure of the size indicated by
  2499.                the length.  Real numbers (floats and doubles) are
  2500.                in the native machine format only; due to the
  2501.                multiplicity of floating formats around, and the
  2502.                lack of a standard "network" representation, no
  2503.  
  2504.  
  2505.  
  2506. 16/Feb/96                perl 5.002 with                       38
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2513.  
  2514.  
  2515.                facility for interchange has been made.  This
  2516.                means that packed floating point data written on
  2517.                one machine may not be readable on another - even
  2518.                if both use IEEE floating point arithmetic (as the
  2519.                endian-ness of the memory representation is not
  2520.                part of the IEEE spec).  Note that Perl uses
  2521.                doubles internally for all numeric calculation,
  2522.                and converting from double into float and thence
  2523.                back to double again will lose precision (i.e.
  2524.                uuuunnnnppppaaaacccckkkk((((""""ffff"""",,,, ppppaaaacccckkkk((((""""ffff"""",,,, $$$$ffffoooooooo))))) will not in general
  2525.                equal $$$$ffffoooooooo).
  2526.  
  2527.                Examples:
  2528.  
  2529.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""cccccccccccccccc"""",,,,66665555,,,,66666666,,,,66667777,,,,66668888))));;;;
  2530.                    #### ffffoooooooo eeeeqqqq """"AAAABBBBCCCCDDDD""""
  2531.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""cccc4444"""",,,,66665555,,,,66666666,,,,66667777,,,,66668888))));;;;
  2532.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg
  2533.  
  2534.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""ccccccccxxxxxxxxcccccccc"""",,,,66665555,,,,66666666,,,,66667777,,,,66668888))));;;;
  2535.                    #### ffffoooooooo eeeeqqqq """"AAAABBBB\\\\0000\\\\0000CCCCDDDD""""
  2536.  
  2537.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""ssss2222"""",,,,1111,,,,2222))));;;;
  2538.                    #### """"\\\\1111\\\\0000\\\\2222\\\\0000"""" oooonnnn lllliiiittttttttlllleeee----eeeennnnddddiiiiaaaannnn
  2539.                    #### """"\\\\0000\\\\1111\\\\0000\\\\2222"""" oooonnnn bbbbiiiigggg----eeeennnnddddiiiiaaaannnn
  2540.  
  2541.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""aaaa4444"""",,,,""""aaaabbbbccccdddd"""",,,,""""xxxx"""",,,,""""yyyy"""",,,,""""zzzz""""))));;;;
  2542.                    #### """"aaaabbbbccccdddd""""
  2543.  
  2544.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""aaaaaaaaaaaaaaaa"""",,,,""""aaaabbbbccccdddd"""",,,,""""xxxx"""",,,,""""yyyy"""",,,,""""zzzz""""))));;;;
  2545.                    #### """"aaaaxxxxyyyyzzzz""""
  2546.  
  2547.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""aaaa11114444"""",,,,""""aaaabbbbccccddddeeeeffffgggg""""))));;;;
  2548.                    #### """"aaaabbbbccccddddeeeeffffgggg\\\\0000\\\\0000\\\\0000\\\\0000\\\\0000\\\\0000\\\\0000""""
  2549.  
  2550.                    $$$$ffffoooooooo ==== ppppaaaacccckkkk((((""""iiii9999ppppllll"""",,,, ggggmmmmttttiiiimmmmeeee))));;;;
  2551.                    #### aaaa rrrreeeeaaaallll ssssttttrrrruuuucccctttt ttttmmmm ((((oooonnnn mmmmyyyy ssssyyyysssstttteeeemmmm aaaannnnyyyywwwwaaaayyyy))))
  2552.  
  2553.                    ssssuuuubbbb bbbbiiiinnnnttttooooddddeeeecccc {{{{
  2554.                        uuuunnnnppppaaaacccckkkk((((""""NNNN"""",,,, ppppaaaacccckkkk((((""""BBBB33332222"""",,,, ssssuuuubbbbssssttttrrrr((((""""0000"""" xxxx 33332222 .... sssshhhhiiiifffftttt,,,, ----33332222))))))))))));;;;
  2555.                    }}}}
  2556.  
  2557.                The same template may generally also be used in
  2558.                the unpack function.
  2559.  
  2560.        package NAMESPACE
  2561.                Declares the compilation unit as being in the
  2562.                given namespace.  The scope of the package
  2563.                declaration is from the declaration itself through
  2564.                the end of the enclosing block (the same scope as
  2565.                the _l_o_c_a_l_(_) operator).  All further unqualified
  2566.                dynamic identifiers will be in this namespace.  A
  2567.                package statement only affects dynamic
  2568.                variables--including those you've used _l_o_c_a_l_(_)
  2569.  
  2570.  
  2571.  
  2572. 16/Feb/96                perl 5.002 with                       39
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2579.  
  2580.  
  2581.                on--but _n_o_t lexical variables created with _m_y_(_).
  2582.                Typically it would be the first declaration in a
  2583.                file to be included by the rrrreeeeqqqquuuuiiiirrrreeee or uuuusssseeee
  2584.                operator.  You can switch into a package in more
  2585.                than one place; it merely influences which symbol
  2586.                table is used by the compiler for the rest of that
  2587.                block.  You can refer to variables and filehandles
  2588.                in other packages by prefixing the identifier with
  2589.                the package name and a double colon:
  2590.                $$$$PPPPaaaacccckkkkaaaaggggeeee::::::::VVVVaaaarrrriiiiaaaabbbblllleeee.  If the package name is null,
  2591.                the mmmmaaaaiiiinnnn package as assumed.  That is, $$$$::::::::ssssaaaaiiiillll is
  2592.                equivalent to $$$$mmmmaaaaiiiinnnn::::::::ssssaaaaiiiillll.
  2593.  
  2594.                See the section on _P_a_c_k_a_g_e_s in the _p_e_r_l_m_o_d manpage
  2595.                for more information about packages, modules, and
  2596.                classes.  See the _p_e_r_l_s_u_b manpage for other
  2597.                scoping issues.
  2598.  
  2599.        pipe READHANDLE,WRITEHANDLE
  2600.                Opens a pair of connected pipes like the
  2601.                corresponding system call.  Note that if you set
  2602.                up a loop of piped processes, deadlock can occur
  2603.                unless you are very careful.  In addition, note
  2604.                that Perl's pipes use stdio buffering, so you may
  2605.                need to set $| to flush your WRITEHANDLE after
  2606.                each command, depending on the application.
  2607.  
  2608.                See the _o_p_e_n_2 manpage, the _o_p_e_n_3 manpage, and the
  2609.                section on _B_i_d_i_r_e_c_t_i_o_n_a_l _C_o_m_m_u_n_i_c_a_t_i_o_n in the
  2610.                _p_e_r_l_i_p_c manpage for examples of such things.
  2611.  
  2612.        pop ARRAY
  2613.                Pops and returns the last value of the array,
  2614.                shortening the array by 1.  Has a similar effect
  2615.                to
  2616.  
  2617.                    $$$$ttttmmmmpppp ==== $$$$AAAARRRRRRRRAAAAYYYY[[[[$$$$####AAAARRRRRRRRAAAAYYYY--------]]]];;;;
  2618.  
  2619.                If there are no elements in the array, returns the
  2620.                undefined value.  If ARRAY is omitted, pops the
  2621.                @@@@AAAARRRRGGGGVVVV array in the main program, and the @@@@____ array
  2622.                in subroutines, just like _s_h_i_f_t_(_).
  2623.  
  2624.        pos SCALAR
  2625.                Returns the offset of where the last mmmm////////gggg search
  2626.                left off for the variable in question.  May be
  2627.                modified to change that offset.
  2628.  
  2629.        print FILEHANDLE LIST
  2630.  
  2631.        print LIST
  2632.  
  2633.        print   Prints a string or a comma-separated list of
  2634.                strings.  Returns TRUE if successful.  FILEHANDLE
  2635.  
  2636.  
  2637.  
  2638. 16/Feb/96                perl 5.002 with                       40
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2645.  
  2646.  
  2647.                may be a scalar variable name, in which case the
  2648.                variable contains the name of or a reference to
  2649.                the filehandle, thus introducing one level of
  2650.                indirection.  (NOTE: If FILEHANDLE is a variable
  2651.                and the next token is a term, it may be
  2652.                misinterpreted as an operator unless you interpose
  2653.                a + or put parens around the arguments.)  If
  2654.                FILEHANDLE is omitted, prints by default to
  2655.                standard output (or to the last selected output
  2656.                channel--see _s_e_l_e_c_t_(_)).  If LIST is also omitted,
  2657.                prints $$$$____ to STDOUT.  To set the default output
  2658.                channel to something other than STDOUT use the
  2659.                select operation.  Note that, because print takes
  2660.                a LIST, anything in the LIST is evaluated in a
  2661.                list context, and any subroutine that you call
  2662.                will have one or more of its expressions evaluated
  2663.                in a list context.  Also be careful not to follow
  2664.                the print keyword with a left parenthesis unless
  2665.                you want the corresponding right parenthesis to
  2666.                terminate the arguments to the print--interpose a
  2667.                + or put parens around all the arguments.
  2668.  
  2669.                Note that if you're storing FILEHANDLES in an
  2670.                array or other expression, you will have to use a
  2671.                block returning its value instead
  2672.  
  2673.                    pppprrrriiiinnnntttt {{{{ $$$$ffffiiiilllleeeessss[[[[$$$$iiii]]]] }}}} """"ssssttttuuuuffffffff\\\\nnnn"""";;;;
  2674.                    pppprrrriiiinnnntttt {{{{ $$$$OOOOKKKK ???? SSSSTTTTDDDDOOOOUUUUTTTT :::: SSSSTTTTDDDDEEEERRRRRRRR }}}} """"ssssttttuuuuffffffff\\\\nnnn"""";;;;
  2675.  
  2676.  
  2677.        printf FILEHANDLE LIST
  2678.  
  2679.        printf LIST
  2680.                Equivalent to a "print FILEHANDLE _s_p_r_i_n_t_f(LIST)".
  2681.                The first argument of the list will be interpreted
  2682.                as the printf format.
  2683.  
  2684.        push ARRAY,LIST
  2685.                Treats ARRAY as a stack, and pushes the values of
  2686.                LIST onto the end of ARRAY.  The length of ARRAY
  2687.                increases by the length of LIST.  Has the same
  2688.                effect as
  2689.  
  2690.                    ffffoooorrrr $$$$vvvvaaaalllluuuueeee ((((LLLLIIIISSSSTTTT)))) {{{{
  2691.                        $$$$AAAARRRRRRRRAAAAYYYY[[[[++++++++$$$$####AAAARRRRRRRRAAAAYYYY]]]] ==== $$$$vvvvaaaalllluuuueeee;;;;
  2692.                    }}}}
  2693.  
  2694.                but is more efficient.  Returns the new number of
  2695.                elements in the array.
  2696.  
  2697.        q/STRING/
  2698.  
  2699.        qq/STRING/
  2700.  
  2701.  
  2702.  
  2703.  
  2704. 16/Feb/96                perl 5.002 with                       41
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2711.  
  2712.  
  2713.        qx/STRING/
  2714.  
  2715.        qw/STRING/
  2716.                Generalized quotes.  See the _p_e_r_l_o_p manpage.
  2717.  
  2718.        quotemeta EXPR
  2719.                Returns the value of EXPR with with all regular
  2720.                expression metacharacters backslashed.  This is
  2721.                the internal function implementing the \Q escape
  2722.                in double-quoted strings.
  2723.  
  2724.        rand EXPR
  2725.  
  2726.        rand    Returns a random fractional number between 0 and
  2727.                the value of EXPR.  (EXPR should be positive.)  If
  2728.                EXPR is omitted, returns a value between 0 and 1.
  2729.                This function produces repeatable sequences unless
  2730.                _s_r_a_n_d_(_) is invoked.  See also _s_r_a_n_d_(_).
  2731.  
  2732.                (Note: if your rand function consistently returns
  2733.                numbers that are too large or too small, then your
  2734.                version of Perl was probably compiled with the
  2735.                wrong number of RANDBITS.  As a workaround, you
  2736.                can usually multiply EXPR by the correct power of
  2737.                2 to get the range you want.  This will make your
  2738.                script unportable, however.  It's better to
  2739.                recompile if you can.)
  2740.  
  2741.        read FILEHANDLE,SCALAR,LENGTH,OFFSET
  2742.  
  2743.        read FILEHANDLE,SCALAR,LENGTH
  2744.                Attempts to read LENGTH bytes of data into
  2745.                variable SCALAR from the specified FILEHANDLE.
  2746.                Returns the number of bytes actually read, or
  2747.                undef if there was an error.  SCALAR will be grown
  2748.                or shrunk to the length actually read.  An OFFSET
  2749.                may be specified to place the read data at some
  2750.                other place than the beginning of the string.
  2751.                This call is actually implemented in terms of
  2752.                stdio's fread call.  To get a true read system
  2753.                call, see _s_y_s_r_e_a_d_(_).
  2754.  
  2755.        readdir DIRHANDLE
  2756.                Returns the next directory entry for a directory
  2757.                opened by _o_p_e_n_d_i_r_(_).  If used in a list context,
  2758.                returns all the rest of the entries in the
  2759.                directory.  If there are no more entries, returns
  2760.                an undefined value in a scalar context or a null
  2761.                list in a list context.
  2762.  
  2763.                If you're planning to filetest the return values
  2764.                out of a _r_e_a_d_d_i_r_(_), you'd better prepend the
  2765.                directory in question.  Otherwise, since we didn't
  2766.                _c_h_d_i_r_(_) there, it would have been testing the
  2767.  
  2768.  
  2769.  
  2770. 16/Feb/96                perl 5.002 with                       42
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2777.  
  2778.  
  2779.                wrong file.
  2780.  
  2781.                    ooooppppeeeennnnddddiiiirrrr((((DDDDIIIIRRRR,,,, $$$$ssssoooommmmeeee____ddddiiiirrrr)))) |||||||| ddddiiiieeee """"ccccaaaannnn''''tttt ooooppppeeeennnnddddiiiirrrr $$$$ssssoooommmmeeee____ddddiiiirrrr:::: $$$$!!!!"""";;;;
  2782.                    @@@@ddddoooottttssss ==== ggggrrrreeeepppp {{{{ ////^^^^\\\\....//// &&&&&&&& ----ffff """"$$$$ssssoooommmmeeee____ddddiiiirrrr////$$$$____"""" }}}} rrrreeeeaaaaddddddddiiiirrrr((((DDDDIIIIRRRR))));;;;
  2783.                    cccclllloooosssseeeeddddiiiirrrr DDDDIIIIRRRR;;;;
  2784.  
  2785.  
  2786.        readlink EXPR
  2787.                Returns the value of a symbolic link, if symbolic
  2788.                links are implemented.  If not, gives a fatal
  2789.                error.  If there is some system error, returns the
  2790.                undefined value and sets $! (errno).  If EXPR is
  2791.                omitted, uses $$$$____.
  2792.  
  2793.        recv SOCKET,SCALAR,LEN,FLAGS
  2794.                Receives a message on a socket.  Attempts to
  2795.                receive LENGTH bytes of data into variable SCALAR
  2796.                from the specified SOCKET filehandle.  Actually
  2797.                does a C _r_e_c_v_f_r_o_m_(_), so that it can returns the
  2798.                address of the sender.  Returns the undefined
  2799.                value if there's an error.  SCALAR will be grown
  2800.                or shrunk to the length actually read.  Takes the
  2801.                same flags as the system call of the same name.
  2802.                See the section on _U_D_P_: _M_e_s_s_a_g_e _P_a_s_s_i_n_g in the
  2803.                _p_e_r_l_i_p_c manpage for examples.
  2804.  
  2805.        redo LABEL
  2806.  
  2807.        redo    The rrrreeeeddddoooo command restarts the loop block without
  2808.                evaluating the conditional again.  The ccccoooonnnnttttiiiinnnnuuuueeee
  2809.                block, if any, is not executed.  If the LABEL is
  2810.                omitted, the command refers to the innermost
  2811.                enclosing loop.  This command is normally used by
  2812.                programs that want to lie to themselves about what
  2813.                was just input:
  2814.  
  2815.                    #### aaaa ssssiiiimmmmpppplllleeeemmmmiiiinnnnddddeeeedddd PPPPaaaassssccccaaaallll ccccoooommmmmmmmeeeennnntttt ssssttttrrrriiiippppppppeeeerrrr
  2816.                    #### ((((wwwwaaaarrrrnnnniiiinnnngggg:::: aaaassssssssuuuummmmeeeessss nnnnoooo {{{{ oooorrrr }}}} iiiinnnn ssssttttrrrriiiinnnnggggssss))))
  2817.                    LLLLIIIINNNNEEEE:::: wwwwhhhhiiiilllleeee ((((<<<<SSSSTTTTDDDDIIIINNNN>>>>)))) {{{{
  2818.                        wwwwhhhhiiiilllleeee ((((ssss||||(((({{{{....****}}}}....****)))){{{{....****}}}}||||$$$$1111 ||||)))) {{{{}}}}
  2819.                        ssss||||{{{{....****}}}}|||| ||||;;;;
  2820.                        iiiiffff ((((ssss||||{{{{....****|||| ||||)))) {{{{
  2821.                            $$$$ffffrrrroooonnnntttt ==== $$$$____;;;;
  2822.                            wwwwhhhhiiiilllleeee ((((<<<<SSSSTTTTDDDDIIIINNNN>>>>)))) {{{{
  2823.                                iiiiffff ((((////}}}}////)))) {{{{      #### eeeennnndddd ooooffff ccccoooommmmmmmmeeeennnntttt????
  2824.                                    ssss||||^^^^||||$$$$ffffrrrroooonnnntttt{{{{||||;;;;
  2825.                                    rrrreeeeddddoooo LLLLIIIINNNNEEEE;;;;
  2826.                                }}}}
  2827.                            }}}}
  2828.                        }}}}
  2829.                        pppprrrriiiinnnntttt;;;;
  2830.                    }}}}
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836. 16/Feb/96                perl 5.002 with                       43
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2843.  
  2844.  
  2845.        ref EXPR
  2846.                Returns a TRUE value if EXPR is a reference, FALSE
  2847.                otherwise.  The value returned depends on the type
  2848.                of thing the reference is a reference to.  Builtin
  2849.                types include:
  2850.  
  2851.                    RRRREEEEFFFF
  2852.                    SSSSCCCCAAAALLLLAAAARRRR
  2853.                    AAAARRRRRRRRAAAAYYYY
  2854.                    HHHHAAAASSSSHHHH
  2855.                    CCCCOOOODDDDEEEE
  2856.                    GGGGLLLLOOOOBBBB
  2857.  
  2858.                If the referenced object has been blessed into a
  2859.                package, then that package name is returned
  2860.                instead.  You can think of _r_e_f_(_) as a _t_y_p_e_o_f_(_)
  2861.                operator.
  2862.  
  2863.                    iiiiffff ((((rrrreeeeffff(((($$$$rrrr)))) eeeeqqqq """"HHHHAAAASSSSHHHH"""")))) {{{{
  2864.                        pppprrrriiiinnnntttt """"rrrr iiiissss aaaa rrrreeeeffffeeeerrrreeeennnncccceeee ttttoooo aaaannnn aaaassssssssoooocccciiiiaaaattttiiiivvvveeee aaaarrrrrrrraaaayyyy....\\\\nnnn"""";;;;
  2865.                    }}}}
  2866.                    iiiiffff ((((!!!!rrrreeeeffff (((($$$$rrrr)))) {{{{
  2867.                        pppprrrriiiinnnntttt """"rrrr iiiissss nnnnooootttt aaaa rrrreeeeffffeeeerrrreeeennnncccceeee aaaatttt aaaallllllll....\\\\nnnn"""";;;;
  2868.                    }}}}
  2869.  
  2870.                See also the _p_e_r_l_r_e_f manpage.
  2871.  
  2872.        rename OLDNAME,NEWNAME
  2873.                Changes the name of a file.  Returns 1 for
  2874.                success, 0 otherwise.  Will not work across
  2875.                filesystem boundaries.
  2876.  
  2877.        require EXPR
  2878.  
  2879.        require Demands some semantics specified by EXPR, or by $$$$____
  2880.                if EXPR is not supplied.  If EXPR is numeric,
  2881.                demands that the current version of Perl ($] or
  2882.                $$$$PPPPEEEERRRRLLLL____VVVVEEEERRRRSSSSIIIIOOOONNNN) be equal or greater than EXPR.
  2883.  
  2884.                Otherwise, demands that a library file be included
  2885.                if it hasn't already been included.  The file is
  2886.                included via the do-FILE mechanism, which is
  2887.                essentially just a variety of _e_v_a_l_(_).  Has
  2888.                semantics similar to the following subroutine:
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902. 16/Feb/96                perl 5.002 with                       44
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2909.  
  2910.  
  2911.                    ssssuuuubbbb rrrreeeeqqqquuuuiiiirrrreeee {{{{
  2912.                        llllooooccccaaaallll(((($$$$ffffiiiilllleeeennnnaaaammmmeeee)))) ==== @@@@____;;;;
  2913.                        rrrreeeettttuuuurrrrnnnn 1111 iiiiffff $$$$IIIINNNNCCCC{{{{$$$$ffffiiiilllleeeennnnaaaammmmeeee}}}};;;;
  2914.                        llllooooccccaaaallll(((($$$$rrrreeeeaaaallllffffiiiilllleeeennnnaaaammmmeeee,,,,$$$$rrrreeeessssuuuulllltttt))));;;;
  2915.                        IIIITTTTEEEERRRR:::: {{{{
  2916.                            ffffoooorrrreeeeaaaacccchhhh $$$$pppprrrreeeeffffiiiixxxx ((((@@@@IIIINNNNCCCC)))) {{{{
  2917.                                $$$$rrrreeeeaaaallllffffiiiilllleeeennnnaaaammmmeeee ==== """"$$$$pppprrrreeeeffffiiiixxxx////$$$$ffffiiiilllleeeennnnaaaammmmeeee"""";;;;
  2918.                                iiiiffff ((((----ffff $$$$rrrreeeeaaaallllffffiiiilllleeeennnnaaaammmmeeee)))) {{{{
  2919.                                    $$$$rrrreeeessssuuuulllltttt ==== ddddoooo $$$$rrrreeeeaaaallllffffiiiilllleeeennnnaaaammmmeeee;;;;
  2920.                                    llllaaaasssstttt IIIITTTTEEEERRRR;;;;
  2921.                                }}}}
  2922.                            }}}}
  2923.                            ddddiiiieeee """"CCCCaaaannnn''''tttt ffffiiiinnnndddd $$$$ffffiiiilllleeeennnnaaaammmmeeee iiiinnnn \\\\@@@@IIIINNNNCCCC"""";;;;
  2924.                        }}}}
  2925.                        ddddiiiieeee $$$$@@@@ iiiiffff $$$$@@@@;;;;
  2926.                        ddddiiiieeee """"$$$$ffffiiiilllleeeennnnaaaammmmeeee ddddiiiidddd nnnnooootttt rrrreeeettttuuuurrrrnnnn ttttrrrruuuueeee vvvvaaaalllluuuueeee"""" uuuunnnnlllleeeessssssss $$$$rrrreeeessssuuuulllltttt;;;;
  2927.                        $$$$IIIINNNNCCCC{{{{$$$$ffffiiiilllleeeennnnaaaammmmeeee}}}} ==== $$$$rrrreeeeaaaallllffffiiiilllleeeennnnaaaammmmeeee;;;;
  2928.                        $$$$rrrreeeessssuuuulllltttt;;;;
  2929.                    }}}}
  2930.  
  2931.                Note that the file will not be included twice
  2932.                under the same specified name.  The file must
  2933.                return TRUE as the last statement to indicate
  2934.                successful execution of any initialization code,
  2935.                so it's customary to end such a file with "1;"
  2936.                unless you're sure it'll return TRUE otherwise.
  2937.                But it's better just to put the "1111;;;;", in case you
  2938.                add more statements.
  2939.  
  2940.                If EXPR is a bare word, the require assumes a
  2941.                "_._p_m" extension for you, to make it easy to load
  2942.                standard modules.  This form of loading of modules
  2943.                does not risk altering your namespace.
  2944.  
  2945.                For a yet-more-powerful import facility, see the
  2946.                the uuuusssseeee(((()))) entry elsewhere in this documentthe
  2947.                _p_e_r_l_m_o_d manpage.
  2948.  
  2949.        reset EXPR
  2950.  
  2951.        reset   Generally used in a ccccoooonnnnttttiiiinnnnuuuueeee block at the end of a
  2952.                loop to clear variables and reset ?? searches so
  2953.                that they work again.  The expression is
  2954.                interpreted as a list of single characters
  2955.                (hyphens allowed for ranges).  All variables and
  2956.                arrays beginning with one of those letters are
  2957.                reset to their pristine state.  If the expression
  2958.                is omitted, one-match searches (?pattern?) are
  2959.                reset to match again.  Only resets variables or
  2960.                searches in the current package.  Always returns
  2961.                1.  Examples:
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968. 16/Feb/96                perl 5.002 with                       45
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  2975.  
  2976.  
  2977.                    rrrreeeesssseeeetttt ''''XXXX'''';;;;          #### rrrreeeesssseeeetttt aaaallllllll XXXX vvvvaaaarrrriiiiaaaabbbblllleeeessss
  2978.                    rrrreeeesssseeeetttt ''''aaaa----zzzz'''';;;;        #### rrrreeeesssseeeetttt lllloooowwwweeeerrrr ccccaaaasssseeee vvvvaaaarrrriiiiaaaabbbblllleeeessss
  2979.                    rrrreeeesssseeeetttt;;;;              #### jjjjuuuusssstttt rrrreeeesssseeeetttt ???????? sssseeeeaaaarrrrcccchhhheeeessss
  2980.  
  2981.                Resetting "A-Z" is not recommended since you'll
  2982.                wipe out your ARGV and ENV arrays.  Only resets
  2983.                package variables--lexical variables are
  2984.                unaffected, but they clean themselves up on scope
  2985.                exit anyway, so anymore you probably want to use
  2986.                them instead.  See the mmmmyyyy entry elsewhere in this
  2987.                document.
  2988.  
  2989.        return LIST
  2990.                Returns from a subroutine or eval with the value
  2991.                specified.  (Note that in the absence of a return
  2992.                a subroutine or _e_v_a_l_(_) will automatically return
  2993.                the value of the last expression evaluated.)
  2994.  
  2995.        reverse LIST
  2996.                In a list context, returns a list value consisting
  2997.                of the elements of LIST in the opposite order.  In
  2998.                a scalar context, returns a string value
  2999.                consisting of the bytes of the first element of
  3000.                LIST in the opposite order.
  3001.  
  3002.                    pppprrrriiiinnnntttt rrrreeeevvvveeeerrrrsssseeee <<<<>>>>;;;;                   #### lllliiiinnnneeee ttttaaaacccc
  3003.  
  3004.                    uuuunnnnddddeeeeffff $$$$////;;;;
  3005.                    pppprrrriiiinnnntttt ssssccccaaaallllaaaarrrr rrrreeeevvvveeeerrrrsssseeee ssssccccaaaallllaaaarrrr <<<<>>>>;;;;     #### bbbbyyyytttteeee ttttaaaacccc
  3006.  
  3007.  
  3008.        rewinddir DIRHANDLE
  3009.                Sets the current position to the beginning of the
  3010.                directory for the _r_e_a_d_d_i_r_(_) routine on DIRHANDLE.
  3011.  
  3012.        rindex STR,SUBSTR,POSITION
  3013.  
  3014.        rindex STR,SUBSTR
  3015.                Works just like index except that it returns the
  3016.                position of the LAST occurrence of SUBSTR in STR.
  3017.                If POSITION is specified, returns the last
  3018.                occurrence at or before that position.
  3019.  
  3020.        rmdir FILENAME
  3021.                Deletes the directory specified by FILENAME if it
  3022.                is empty.  If it succeeds it returns 1, otherwise
  3023.                it returns 0 and sets $! (errno).  If FILENAME is
  3024.                omitted, uses $$$$____.
  3025.  
  3026.        s///    The substitution operator.  See the _p_e_r_l_o_p
  3027.                manpage.
  3028.  
  3029.        scalar EXPR
  3030.                Forces EXPR to be interpreted in a scalar context
  3031.  
  3032.  
  3033.  
  3034. 16/Feb/96                perl 5.002 with                       46
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3041.  
  3042.  
  3043.                and returns the value of EXPR.
  3044.  
  3045.                    @@@@ccccoooouuuunnnnttttssss ==== (((( ssssccccaaaallllaaaarrrr @@@@aaaa,,,, ssssccccaaaallllaaaarrrr @@@@bbbb,,,, ssssccccaaaallllaaaarrrr @@@@cccc ))));;;;
  3046.  
  3047.                There is no equivalent operator to force an
  3048.                expression to be interpolated in a list context
  3049.                because it's in practice never needed.  If you
  3050.                really wanted to do so, however, you could use the
  3051.                construction @@@@{{{{[[[[ ((((ssssoooommmmeeee eeeexxxxpppprrrreeeessssssssiiiioooonnnn)))) ]]]]}}}}, but usually
  3052.                a simple ((((ssssoooommmmeeee eeeexxxxpppprrrreeeessssssssiiiioooonnnn)))) suffices.
  3053.  
  3054.        seek FILEHANDLE,POSITION,WHENCE
  3055.                Randomly positions the file pointer for
  3056.                FILEHANDLE, just like the _f_s_e_e_k_(_) call of stdio.
  3057.                FILEHANDLE may be an expression whose value gives
  3058.                the name of the filehandle.  The values for WHENCE
  3059.                are 0 to set the file pointer to POSITION, 1 to
  3060.                set the it to current plus POSITION, and 2 to set
  3061.                it to EOF plus offset.  You may use the values
  3062.                SEEK_SET, SEEK_CUR, and SEEK_END for this from
  3063.                POSIX module.  Returns 1 upon success, 0
  3064.                otherwise.
  3065.  
  3066.                On some systems you have to do a seek whenever you
  3067.                switch between reading and writing.  Amongst other
  3068.                things, this may have the effect of calling
  3069.                stdio's _c_l_e_a_r_e_r_r(3).  A "whence" of 1 (SEEK_CUR)
  3070.                is useful for not moving the file pointer:
  3071.  
  3072.                    sssseeeeeeeekkkk((((TTTTEEEESSSSTTTT,,,,0000,,,,1111))));;;;
  3073.  
  3074.                This is also useful for applications emulating
  3075.                ttttaaaaiiiillll ----ffff.  Once you hit EOF on your read, and then
  3076.                sleep for a while, you might have to stick in a
  3077.                _s_e_e_k_(_) to reset things.  First the simple trick
  3078.                listed above to clear the filepointer.  The _s_e_e_k_(_)
  3079.                doesn't change the current position, but it _d_o_e_s
  3080.                clear the end-of-file condition on the handle, so
  3081.                that the next C<<FILE<>> makes Perl try again to
  3082.                read something.  Hopefully.
  3083.  
  3084.                If that doesn't work (some stdios are particularly
  3085.                cantankerous), then you may need something more
  3086.                like this:
  3087.  
  3088.                    ffffoooorrrr ((((;;;;;;;;)))) {{{{
  3089.                        ffffoooorrrr (((($$$$ccccuuuurrrrppppoooossss ==== tttteeeellllllll((((FFFFIIIILLLLEEEE))));;;; $$$$____ ==== <<<<FFFFIIIILLLLEEEE>>>>;;;; $$$$ccccuuuurrrrppppoooossss ==== tttteeeellllllll((((FFFFIIIILLLLEEEE)))))))) {{{{
  3090.                            #### sssseeeeaaaarrrrcccchhhh ffffoooorrrr ssssoooommmmeeee ssssttttuuuuffffffff aaaannnndddd ppppuuuutttt iiiitttt iiiinnnnttttoooo ffffiiiilllleeeessss
  3091.                        }}}}
  3092.                        sssslllleeeeeeeepppp(((($$$$ffffoooorrrr____aaaa____wwwwhhhhiiiilllleeee))));;;;
  3093.                        sssseeeeeeeekkkk((((FFFFIIIILLLLEEEE,,,, $$$$ccccuuuurrrrppppoooossss,,,, 0000))));;;;
  3094.                    }}}}
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100. 16/Feb/96                perl 5.002 with                       47
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3107.  
  3108.  
  3109.        seekdir DIRHANDLE,POS
  3110.                Sets the current position for the _r_e_a_d_d_i_r_(_)
  3111.                routine on DIRHANDLE.  POS must be a value
  3112.                returned by _t_e_l_l_d_i_r_(_).  Has the same caveats about
  3113.                possible directory compaction as the corresponding
  3114.                system library routine.
  3115.  
  3116.        select FILEHANDLE
  3117.  
  3118.        select  Returns the currently selected filehandle.  Sets
  3119.                the current default filehandle for output, if
  3120.                FILEHANDLE is supplied.  This has two effects:
  3121.                first, a wwwwrrrriiiitttteeee or a pppprrrriiiinnnntttt without a filehandle
  3122.                will default to this FILEHANDLE.  Second,
  3123.                references to variables related to output will
  3124.                refer to this output channel.  For example, if you
  3125.                have to set the top of form format for more than
  3126.                one output channel, you might do the following:
  3127.  
  3128.                    sssseeeelllleeeecccctttt((((RRRREEEEPPPPOOOORRRRTTTT1111))));;;;
  3129.                    $$$$^^^^ ==== ''''rrrreeeeppppoooorrrrtttt1111____ttttoooopppp'''';;;;
  3130.                    sssseeeelllleeeecccctttt((((RRRREEEEPPPPOOOORRRRTTTT2222))));;;;
  3131.                    $$$$^^^^ ==== ''''rrrreeeeppppoooorrrrtttt2222____ttttoooopppp'''';;;;
  3132.  
  3133.                FILEHANDLE may be an expression whose value gives
  3134.                the name of the actual filehandle.  Thus:
  3135.  
  3136.                    $$$$oooollllddddffffhhhh ==== sssseeeelllleeeecccctttt((((SSSSTTTTDDDDEEEERRRRRRRR))));;;; $$$$|||| ==== 1111;;;; sssseeeelllleeeecccctttt(((($$$$oooollllddddffffhhhh))));;;;
  3137.  
  3138.                Some programmers may prefer to think of
  3139.                filehandles as objects with methods, preferring to
  3140.                write the last example as:
  3141.  
  3142.                    uuuusssseeee FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
  3143.                    SSSSTTTTDDDDEEEERRRRRRRR---->>>>aaaauuuuttttoooofffflllluuuusssshhhh((((1111))));;;;
  3144.  
  3145.  
  3146.        select RBITS,WBITS,EBITS,TIMEOUT
  3147.                This calls the _s_e_l_e_c_t(2) system call with the
  3148.                bitmasks specified, which can be constructed using
  3149.                _f_i_l_e_n_o_(_) and _v_e_c_(_), along these lines:
  3150.  
  3151.                    $$$$rrrriiiinnnn ==== $$$$wwwwiiiinnnn ==== $$$$eeeeiiiinnnn ==== '''''''';;;;
  3152.                    vvvveeeecccc(((($$$$rrrriiiinnnn,,,,ffffiiiilllleeeennnnoooo((((SSSSTTTTDDDDIIIINNNN)))),,,,1111)))) ==== 1111;;;;
  3153.                    vvvveeeecccc(((($$$$wwwwiiiinnnn,,,,ffffiiiilllleeeennnnoooo((((SSSSTTTTDDDDOOOOUUUUTTTT)))),,,,1111)))) ==== 1111;;;;
  3154.                    $$$$eeeeiiiinnnn ==== $$$$rrrriiiinnnn |||| $$$$wwwwiiiinnnn;;;;
  3155.  
  3156.                If you want to select on many filehandles you
  3157.                might wish to write a subroutine:
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166. 16/Feb/96                perl 5.002 with                       48
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3173.  
  3174.  
  3175.                    ssssuuuubbbb ffffhhhhbbbbiiiittttssss {{{{
  3176.                        llllooooccccaaaallll((((@@@@ffffhhhhlllliiiisssstttt)))) ==== sssspppplllliiiitttt(((('''' '''',,,,$$$$____[[[[0000]]]]))));;;;
  3177.                        llllooooccccaaaallll(((($$$$bbbbiiiittttssss))));;;;
  3178.                        ffffoooorrrr ((((@@@@ffffhhhhlllliiiisssstttt)))) {{{{
  3179.                            vvvveeeecccc(((($$$$bbbbiiiittttssss,,,,ffffiiiilllleeeennnnoooo(((($$$$____)))),,,,1111)))) ==== 1111;;;;
  3180.                        }}}}
  3181.                        $$$$bbbbiiiittttssss;;;;
  3182.                    }}}}
  3183.                    $$$$rrrriiiinnnn ==== ffffhhhhbbbbiiiittttssss((((''''SSSSTTTTDDDDIIIINNNN TTTTTTTTYYYY SSSSOOOOCCCCKKKK''''))));;;;
  3184.  
  3185.                The usual idiom is:
  3186.  
  3187.                    (((($$$$nnnnffffoooouuuunnnndddd,,,,$$$$ttttiiiimmmmeeeelllleeeefffftttt)))) ====
  3188.                      sssseeeelllleeeecccctttt(((($$$$rrrroooouuuutttt====$$$$rrrriiiinnnn,,,, $$$$wwwwoooouuuutttt====$$$$wwwwiiiinnnn,,,, $$$$eeeeoooouuuutttt====$$$$eeeeiiiinnnn,,,, $$$$ttttiiiimmmmeeeeoooouuuutttt))));;;;
  3189.  
  3190.                or to block until something becomes ready just do
  3191.                this
  3192.  
  3193.                    $$$$nnnnffffoooouuuunnnndddd ==== sssseeeelllleeeecccctttt(((($$$$rrrroooouuuutttt====$$$$rrrriiiinnnn,,,, $$$$wwwwoooouuuutttt====$$$$wwwwiiiinnnn,,,, $$$$eeeeoooouuuutttt====$$$$eeeeiiiinnnn,,,, uuuunnnnddddeeeeffff))));;;;
  3194.  
  3195.                Most systems do not both to return anything useful
  3196.                in $$$$ttttiiiimmmmeeeelllleeeefffftttt, so calling _s_e_l_e_c_t_(_) in a scalar
  3197.                context just returns $$$$nnnnffffoooouuuunnnndddd.
  3198.  
  3199.                Any of the bitmasks can also be undef.  The
  3200.                timeout, if specified, is in seconds, which may be
  3201.                fractional.  Note: not all implementations are
  3202.                capable of returning the $$$$ttttiiiimmmmeeeelllleeeefffftttt.  If not, they
  3203.                always return $$$$ttttiiiimmmmeeeelllleeeefffftttt equal to the supplied
  3204.                $$$$ttttiiiimmmmeeeeoooouuuutttt.
  3205.  
  3206.                You can effect a 250-microsecond sleep this way:
  3207.  
  3208.                    sssseeeelllleeeecccctttt((((uuuunnnnddddeeeeffff,,,, uuuunnnnddddeeeeffff,,,, uuuunnnnddddeeeeffff,,,, 0000....22225555))));;;;
  3209.  
  3210.                WWWWAAAARRRRNNNNIIIINNNNGGGG: Do not attempt to mix buffered I/O (like
  3211.                _r_e_a_d_(_) or <FH>) with _s_e_l_e_c_t_(_).  You have to use
  3212.                _s_y_s_r_e_a_d_(_) instead.
  3213.  
  3214.        semctl ID,SEMNUM,CMD,ARG
  3215.                Calls the System V IPC function semctl.  If CMD is
  3216.                &IPC_STAT or &GETALL, then ARG must be a variable
  3217.                which will hold the returned semid_ds structure or
  3218.                semaphore value array.  Returns like ioctl: the
  3219.                undefined value for error, "0 but true" for zero,
  3220.                or the actual return value otherwise.
  3221.  
  3222.        semget KEY,NSEMS,FLAGS
  3223.                Calls the System V IPC function semget.  Returns
  3224.                the semaphore id, or the undefined value if there
  3225.                is an error.
  3226.  
  3227.        semop KEY,OPSTRING
  3228.                Calls the System V IPC function semop to perform
  3229.  
  3230.  
  3231.  
  3232. 16/Feb/96                perl 5.002 with                       49
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3239.  
  3240.  
  3241.                semaphore operations such as signaling and
  3242.                waiting.  OPSTRING must be a packed array of semop
  3243.                structures.  Each semop structure can be generated
  3244.                with ppppaaaacccckkkk((((""""ssssssssssss"""",,,, $$$$sssseeeemmmmnnnnuuuummmm,,,, $$$$sssseeeemmmmoooopppp,,,, $$$$sssseeeemmmmffffllllaaaagggg)))).  The
  3245.                number of semaphore operations is implied by the
  3246.                length of OPSTRING.  Returns TRUE if successful,
  3247.                or FALSE if there is an error.  As an example, the
  3248.                following code waits on semaphore $$$$sssseeeemmmmnnnnuuuummmm of
  3249.                semaphore id $$$$sssseeeemmmmiiiidddd::::
  3250.  
  3251.                    $$$$sssseeeemmmmoooopppp ==== ppppaaaacccckkkk((((""""ssssssssssss"""",,,, $$$$sssseeeemmmmnnnnuuuummmm,,,, ----1111,,,, 0000))));;;;
  3252.                    ddddiiiieeee """"SSSSeeeemmmmaaaapppphhhhoooorrrreeee ttttrrrroooouuuubbbblllleeee:::: $$$$!!!!\\\\nnnn"""" uuuunnnnlllleeeessssssss sssseeeemmmmoooopppp(((($$$$sssseeeemmmmiiiidddd,,,, $$$$sssseeeemmmmoooopppp))));;;;
  3253.  
  3254.                To signal the semaphore, replace "-1" with "1".
  3255.  
  3256.        send SOCKET,MSG,FLAGS,TO
  3257.  
  3258.        send SOCKET,MSG,FLAGS
  3259.                Sends a message on a socket.  Takes the same flags
  3260.                as the system call of the same name.  On
  3261.                unconnected sockets you must specify a destination
  3262.                to send TO, in which case it does a C _s_e_n_d_t_o_(_).
  3263.                Returns the number of characters sent, or the
  3264.                undefined value if there is an error.  See the
  3265.                section on _U_D_P_: _M_e_s_s_a_g_e _P_a_s_s_i_n_g in the _p_e_r_l_i_p_c
  3266.                manpage for examples.
  3267.  
  3268.        setpgrp PID,PGRP
  3269.                Sets the current process group for the specified
  3270.                PID, 0 for the current process.  Will produce a
  3271.                fatal error if used on a machine that doesn't
  3272.                implement _s_e_t_p_g_r_p(2).
  3273.  
  3274.        setpriority WHICH,WHO,PRIORITY
  3275.                Sets the current priority for a process, a process
  3276.                group, or a user.  (See _s_e_t_p_r_i_o_r_i_t_y(2).)  Will
  3277.                produce a fatal error if used on a machine that
  3278.                doesn't implement _s_e_t_p_r_i_o_r_i_t_y(2).
  3279.  
  3280.        setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL
  3281.                Sets the socket option requested.  Returns
  3282.                undefined if there is an error.  OPTVAL may be
  3283.                specified as undef if you don't want to pass an
  3284.                argument.
  3285.  
  3286.        shift ARRAY
  3287.  
  3288.        shift   Shifts the first value of the array off and
  3289.                returns it, shortening the array by 1 and moving
  3290.                everything down.  If there are no elements in the
  3291.                array, returns the undefined value.  If ARRAY is
  3292.                omitted, shifts the @@@@AAAARRRRGGGGVVVV array in the main
  3293.                program, and the @@@@____ array in subroutines.  (This
  3294.                is determined lexically.)  See also _u_n_s_h_i_f_t_(_),
  3295.  
  3296.  
  3297.  
  3298. 16/Feb/96                perl 5.002 with                       50
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3305.  
  3306.  
  3307.                _p_u_s_h_(_), and _p_o_p_(_).  _S_h_i_f_t_(_) and _u_n_s_h_i_f_t_(_) do the
  3308.                same thing to the left end of an array that _p_u_s_h_(_)
  3309.                and _p_o_p_(_) do to the right end.
  3310.  
  3311.        shmctl ID,CMD,ARG
  3312.                Calls the System V IPC function shmctl.  If CMD is
  3313.                &IPC_STAT, then ARG must be a variable which will
  3314.                hold the returned shmid_ds structure.  Returns
  3315.                like ioctl: the undefined value for error, "0 but
  3316.                true" for zero, or the actual return value
  3317.                otherwise.
  3318.  
  3319.        shmget KEY,SIZE,FLAGS
  3320.                Calls the System V IPC function shmget.  Returns
  3321.                the shared memory segment id, or the undefined
  3322.                value if there is an error.
  3323.  
  3324.        shmread ID,VAR,POS,SIZE
  3325.  
  3326.        shmwrite ID,STRING,POS,SIZE
  3327.                Reads or writes the System V shared memory segment
  3328.                ID starting at position POS for size SIZE by
  3329.                attaching to it, copying in/out, and detaching
  3330.                from it.  When reading, VAR must be a variable
  3331.                which will hold the data read.  When writing, if
  3332.                STRING is too long, only SIZE bytes are used; if
  3333.                STRING is too short, nulls are written to fill out
  3334.                SIZE bytes.  Return TRUE if successful, or FALSE
  3335.                if there is an error.
  3336.  
  3337.        shutdown SOCKET,HOW
  3338.                Shuts down a socket connection in the manner
  3339.                indicated by HOW, which has the same
  3340.                interpretation as in the system call of the same
  3341.                name.
  3342.  
  3343.        sin EXPR
  3344.                Returns the sine of EXPR (expressed in radians).
  3345.                If EXPR is omitted, returns sine of $$$$____.
  3346.  
  3347.        sleep EXPR
  3348.  
  3349.        sleep   Causes the script to sleep for EXPR seconds, or
  3350.                forever if no EXPR.  May be interrupted by sending
  3351.                the process a SIGALRM.  Returns the number of
  3352.                seconds actually slept.  You probably cannot mix
  3353.                _a_l_a_r_m_(_) and _s_l_e_e_p_(_) calls, since _s_l_e_e_p_(_) is often
  3354.                implemented using _a_l_a_r_m_(_).
  3355.  
  3356.                On some older systems, it may sleep up to a full
  3357.                second less than what you requested, depending on
  3358.                how it counts seconds.  Most modern systems always
  3359.                sleep the full amount.
  3360.  
  3361.  
  3362.  
  3363.  
  3364. 16/Feb/96                perl 5.002 with                       51
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3371.  
  3372.  
  3373.                For delays of finer granularity than one second,
  3374.                you may use Perl's _s_y_s_c_a_l_l_(_) interface to access
  3375.                _s_e_t_i_t_i_m_e_r(2) if your system supports it, or else
  3376.                see the sssseeeelllleeeecccctttt(((()))) entry elsewhere in this
  3377.                documentbelow.
  3378.  
  3379.        socket SOCKET,DOMAIN,TYPE,PROTOCOL
  3380.                Opens a socket of the specified kind and attaches
  3381.                it to filehandle SOCKET.  DOMAIN, TYPE and
  3382.                PROTOCOL are specified the same as for the system
  3383.                call of the same name.  You should "use Socket;"
  3384.                first to get the proper definitions imported.  See
  3385.                the example in the section on _S_o_c_k_e_t_s_:
  3386.                _C_l_i_e_n_t_/_S_e_r_v_e_r _C_o_m_m_u_n_i_c_a_t_i_o_n in the _p_e_r_l_i_p_c
  3387.                manpage.
  3388.  
  3389.        socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL
  3390.                Creates an unnamed pair of sockets in the
  3391.                specified domain, of the specified type.  DOMAIN,
  3392.                TYPE and PROTOCOL are specified the same as for
  3393.                the system call of the same name.  If
  3394.                unimplemented, yields a fatal error.  Returns TRUE
  3395.                if successful.
  3396.  
  3397.        sort SUBNAME LIST
  3398.  
  3399.        sort BLOCK LIST
  3400.  
  3401.        sort LIST
  3402.                Sorts the LIST and returns the sorted list value.
  3403.                Nonexistent values of arrays are stripped out.  If
  3404.                SUBNAME or BLOCK is omitted, sorts in standard
  3405.                string comparison order.  If SUBNAME is specified,
  3406.                it gives the name of a subroutine that returns an
  3407.                integer less than, equal to, or greater than 0,
  3408.                depending on how the elements of the array are to
  3409.                be ordered.  (The <=> and cmp operators are
  3410.                extremely useful in such routines.)  SUBNAME may
  3411.                be a scalar variable name, in which case the value
  3412.                provides the name of the subroutine to use.  In
  3413.                place of a SUBNAME, you can provide a BLOCK as an
  3414.                anonymous, in-line sort subroutine.
  3415.  
  3416.                In the interests of efficiency the normal calling
  3417.                code for subroutines is bypassed, with the
  3418.                following effects: the subroutine may not be a
  3419.                recursive subroutine, and the two elements to be
  3420.                compared are passed into the subroutine not via @@@@____
  3421.                but as the package global variables $$$$aaaa and $$$$bbbb (see
  3422.                example below).  They are passed by reference, so
  3423.                don't modify $$$$aaaa and $$$$bbbb.  And don't try to declare
  3424.                them as lexicals either.
  3425.  
  3426.                Examples:
  3427.  
  3428.  
  3429.  
  3430. 16/Feb/96                perl 5.002 with                       52
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3437.  
  3438.  
  3439.                    #### ssssoooorrrrtttt lllleeeexxxxiiiiccccaaaallllllllyyyy
  3440.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt @@@@ffffiiiilllleeeessss;;;;
  3441.  
  3442.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg,,,, bbbbuuuutttt wwwwiiiitttthhhh eeeexxxxpppplllliiiicccciiiitttt ssssoooorrrrtttt rrrroooouuuuttttiiiinnnneeee
  3443.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$aaaa ccccmmmmpppp $$$$bbbb}}}} @@@@ffffiiiilllleeeessss;;;;
  3444.  
  3445.                    #### nnnnoooowwww ccccaaaasssseeee----iiiinnnnsssseeeennnnssssiiiittttiiiivvvveeeellllyyyy
  3446.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{ uuuucccc(((($$$$aaaa)))) ccccmmmmpppp uuuucccc(((($$$$bbbb))))}}}} @@@@ffffiiiilllleeeessss;;;;
  3447.  
  3448.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg iiiinnnn rrrreeeevvvveeeerrrrsssseeeedddd oooorrrrddddeeeerrrr
  3449.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$bbbb ccccmmmmpppp $$$$aaaa}}}} @@@@ffffiiiilllleeeessss;;;;
  3450.  
  3451.                    #### ssssoooorrrrtttt nnnnuuuummmmeeeerrrriiiiccccaaaallllllllyyyy aaaasssscccceeeennnnddddiiiinnnngggg
  3452.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$aaaa <<<<====>>>> $$$$bbbb}}}} @@@@ffffiiiilllleeeessss;;;;
  3453.  
  3454.                    #### ssssoooorrrrtttt nnnnuuuummmmeeeerrrriiiiccccaaaallllllllyyyy ddddeeeesssscccceeeennnnddddiiiinnnngggg
  3455.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$bbbb <<<<====>>>> $$$$aaaa}}}} @@@@ffffiiiilllleeeessss;;;;
  3456.  
  3457.                    #### ssssoooorrrrtttt uuuussssiiiinnnngggg eeeexxxxpppplllliiiicccciiiitttt ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee nnnnaaaammmmeeee
  3458.                    ssssuuuubbbb bbbbyyyyaaaaggggeeee {{{{
  3459.                        $$$$aaaaggggeeee{{{{$$$$aaaa}}}} <<<<====>>>> $$$$aaaaggggeeee{{{{$$$$bbbb}}}};;;;  #### pppprrrreeeessssuuuummmmiiiinnnngggg iiiinnnntttteeeeggggeeeerrrrssss
  3460.                    }}}}
  3461.                    @@@@ssssoooorrrrtttteeeeddddccccllllaaaassssssss ==== ssssoooorrrrtttt bbbbyyyyaaaaggggeeee @@@@ccccllllaaaassssssss;;;;
  3462.  
  3463.                    #### tttthhhhiiiissss ssssoooorrrrttttssss tttthhhheeee %%%%aaaaggggeeee aaaassssssssoooocccciiiiaaaattttiiiivvvveeee aaaarrrrrrrraaaayyyyssss bbbbyyyy vvvvaaaalllluuuueeee
  3464.                    #### iiiinnnnsssstttteeeeaaaadddd ooooffff kkkkeeeeyyyy uuuussssiiiinnnngggg aaaannnn iiiinnnnlllliiiinnnneeee ffffuuuunnnnccccttttiiiioooonnnn
  3465.                    @@@@eeeellllddddeeeesssstttt ==== ssssoooorrrrtttt {{{{ $$$$aaaaggggeeee{{{{$$$$bbbb}}}} <<<<====>>>> $$$$aaaaggggeeee{{{{$$$$aaaa}}}} }}}} kkkkeeeeyyyyssss %%%%aaaaggggeeee;;;;
  3466.  
  3467.                    ssssuuuubbbb bbbbaaaacccckkkkwwwwaaaarrrrddddssss {{{{ $$$$bbbb ccccmmmmpppp $$$$aaaa;;;; }}}}
  3468.                    @@@@hhhhaaaarrrrrrrryyyy ==== ((((''''ddddoooogggg'''',,,,''''ccccaaaatttt'''',,,,''''xxxx'''',,,,''''CCCCaaaaiiiinnnn'''',,,,''''AAAAbbbbeeeellll''''))));;;;
  3469.                    @@@@ggggeeeeoooorrrrggggeeee ==== ((((''''ggggoooonnnneeee'''',,,,''''cccchhhhaaaasssseeeedddd'''',,,,''''yyyyzzzz'''',,,,''''PPPPuuuunnnniiiisssshhhheeeedddd'''',,,,''''AAAAxxxxeeeedddd''''))));;;;
  3470.                    pppprrrriiiinnnntttt ssssoooorrrrtttt @@@@hhhhaaaarrrrrrrryyyy;;;;
  3471.                            #### pppprrrriiiinnnnttttssss AAAAbbbbeeeellllCCCCaaaaiiiinnnnccccaaaattttddddooooggggxxxx
  3472.                    pppprrrriiiinnnntttt ssssoooorrrrtttt bbbbaaaacccckkkkwwwwaaaarrrrddddssss @@@@hhhhaaaarrrrrrrryyyy;;;;
  3473.                            #### pppprrrriiiinnnnttttssss xxxxddddooooggggccccaaaattttCCCCaaaaiiiinnnnAAAAbbbbeeeellll
  3474.                    pppprrrriiiinnnntttt ssssoooorrrrtttt @@@@ggggeeeeoooorrrrggggeeee,,,, ''''ttttoooo'''',,,, @@@@hhhhaaaarrrrrrrryyyy;;;;
  3475.                            #### pppprrrriiiinnnnttttssss AAAAbbbbeeeellllAAAAxxxxeeeeddddCCCCaaaaiiiinnnnPPPPuuuunnnniiiisssshhhheeeeddddccccaaaattttcccchhhhaaaasssseeeeddddddddooooggggggggoooonnnneeeettttooooxxxxyyyyzzzz
  3476.  
  3477.                    #### iiiinnnneeeeffffffffiiiicccciiiieeeennnnttttllllyyyy ssssoooorrrrtttt bbbbyyyy ddddeeeesssscccceeeennnnddddiiiinnnngggg nnnnuuuummmmeeeerrrriiiicccc ccccoooommmmppppaaaarrrreeee uuuussssiiiinnnngggg
  3478.                    #### tttthhhheeee ffffiiiirrrrsssstttt iiiinnnntttteeeeggggeeeerrrr aaaafffftttteeeerrrr tttthhhheeee ffffiiiirrrrsssstttt ==== ssssiiiiggggnnnn,,,, oooorrrr tttthhhheeee
  3479.                    #### wwwwhhhhoooolllleeee rrrreeeeccccoooorrrrdddd ccccaaaasssseeee----iiiinnnnsssseeeennnnssssiiiittttiiiivvvveeeellllyyyy ooootttthhhheeeerrrrwwwwiiiisssseeee
  3480.  
  3481.                    @@@@nnnneeeewwww ==== ssssoooorrrrtttt {{{{
  3482.                        (((($$$$bbbb ====~~~~ ////====((((\\\\dddd++++))))////))))[[[[0000]]]] <<<<====>>>> (((($$$$aaaa ====~~~~ ////====((((\\\\dddd++++))))////))))[[[[0000]]]]
  3483.                                            ||||||||
  3484.                                    uuuucccc(((($$$$aaaa))))  ccccmmmmpppp  uuuucccc(((($$$$bbbb))))
  3485.                    }}}} @@@@oooolllldddd;;;;
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496. 16/Feb/96                perl 5.002 with                       53
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3503.  
  3504.  
  3505.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg,,,, bbbbuuuutttt mmmmuuuucccchhhh mmmmoooorrrreeee eeeeffffffffiiiicccciiiieeeennnnttttllllyyyy;;;;
  3506.                    #### wwwweeee''''llllllll bbbbuuuuiiiilllldddd aaaauuuuxxxxiiiilllliiiiaaaarrrryyyy iiiinnnnddddiiiicccceeeessss iiiinnnnsssstttteeeeaaaadddd
  3507.                    #### ffffoooorrrr ssssppppeeeeeeeedddd
  3508.                    @@@@nnnnuuuummmmssss ==== @@@@ccccaaaappppssss ==== (((())));;;;
  3509.                    ffffoooorrrr ((((@@@@oooolllldddd)))) {{{{
  3510.                        ppppuuuusssshhhh @@@@nnnnuuuummmmssss,,,, ////====((((\\\\dddd++++))))////;;;;
  3511.                        ppppuuuusssshhhh @@@@ccccaaaappppssss,,,, uuuucccc(((($$$$____))));;;;
  3512.                    }}}}
  3513.  
  3514.                    @@@@nnnneeeewwww ==== @@@@oooolllldddd[[[[ ssssoooorrrrtttt {{{{
  3515.                                        $$$$nnnnuuuummmmssss[[[[$$$$bbbb]]]] <<<<====>>>> $$$$nnnnuuuummmmssss[[[[$$$$aaaa]]]]
  3516.                                                 ||||||||
  3517.                                        $$$$ccccaaaappppssss[[[[$$$$aaaa]]]] ccccmmmmpppp $$$$ccccaaaappppssss[[[[$$$$bbbb]]]]
  3518.                                       }}}} 0000........$$$$####oooolllldddd
  3519.                               ]]]];;;;
  3520.  
  3521.                    #### ssssaaaammmmeeee tttthhhhiiiinnnngggg uuuussssiiiinnnngggg aaaa SSSScccchhhhwwwwaaaarrrrttttzzzziiiiaaaannnn TTTTrrrraaaannnnssssffffoooorrrrmmmm ((((nnnnoooo tttteeeemmmmppppssss))))
  3522.                    @@@@nnnneeeewwww ==== mmmmaaaapppp {{{{ $$$$____---->>>>[[[[0000]]]] }}}}
  3523.                        ssssoooorrrrtttt {{{{ $$$$bbbb---->>>>[[[[1111]]]] <<<<====>>>> $$$$aaaa---->>>>[[[[1111]]]]
  3524.                                        ||||||||
  3525.                               $$$$aaaa---->>>>[[[[2222]]]] ccccmmmmpppp $$$$bbbb---->>>>[[[[2222]]]]
  3526.                        }}}} mmmmaaaapppp {{{{ [[[[$$$$____,,,, ////====((((\\\\dddd++++))))////,,,, uuuucccc(((($$$$____))))]]]] }}}} @@@@oooolllldddd;;;;
  3527.  
  3528.                If you're and using strict, you _M_U_S_T _N_O_T declare
  3529.                $$$$aaaa and $$$$bbbb as lexicals.  They are package globals.
  3530.                That means if you're in the mmmmaaaaiiiinnnn package, it's
  3531.  
  3532.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$mmmmaaaaiiiinnnn::::::::bbbb <<<<====>>>> $$$$mmmmaaaaiiiinnnn::::::::aaaa}}}} @@@@ffffiiiilllleeeessss;;;;
  3533.  
  3534.                or just
  3535.  
  3536.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$::::::::bbbb <<<<====>>>> $$$$::::::::aaaa}}}} @@@@ffffiiiilllleeeessss;;;;
  3537.  
  3538.                but if you're in the FFFFooooooooPPPPaaaacccckkkk package, it's
  3539.  
  3540.                    @@@@aaaarrrrttttiiiicccclllleeeessss ==== ssssoooorrrrtttt {{{{$$$$FFFFooooooooPPPPaaaacccckkkk::::::::bbbb <<<<====>>>> $$$$FFFFooooooooPPPPaaaacccckkkk::::::::aaaa}}}} @@@@ffffiiiilllleeeessss;;;;
  3541.  
  3542.  
  3543.        splice ARRAY,OFFSET,LENGTH,LIST
  3544.  
  3545.        splice ARRAY,OFFSET,LENGTH
  3546.  
  3547.        splice ARRAY,OFFSET
  3548.                Removes the elements designated by OFFSET and
  3549.                LENGTH from an array, and replaces them with the
  3550.                elements of LIST, if any.  Returns the elements
  3551.                removed from the array.  The array grows or
  3552.                shrinks as necessary.  If LENGTH is omitted,
  3553.                removes everything from OFFSET onward.  The
  3554.                following equivalencies hold (assuming $[ == 0):
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562. 16/Feb/96                perl 5.002 with                       54
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3569.  
  3570.  
  3571.                    ppppuuuusssshhhh((((@@@@aaaa,,,,$$$$xxxx,,,,$$$$yyyy))))      sssspppplllliiiicccceeee((((@@@@aaaa,,,,$$$$####aaaa++++1111,,,,0000,,,,$$$$xxxx,,,,$$$$yyyy))))
  3572.                    ppppoooopppp((((@@@@aaaa))))             sssspppplllliiiicccceeee((((@@@@aaaa,,,,----1111))))
  3573.                    sssshhhhiiiifffftttt((((@@@@aaaa))))           sssspppplllliiiicccceeee((((@@@@aaaa,,,,0000,,,,1111))))
  3574.                    uuuunnnnsssshhhhiiiifffftttt((((@@@@aaaa,,,,$$$$xxxx,,,,$$$$yyyy))))   sssspppplllliiiicccceeee((((@@@@aaaa,,,,0000,,,,0000,,,,$$$$xxxx,,,,$$$$yyyy))))
  3575.                    $$$$aaaa[[[[$$$$xxxx]]]] ==== $$$$yyyy         sssspppplllliiiicccceeee((((@@@@aaaa,,,,$$$$xxxx,,,,1111,,,,$$$$yyyy))));;;;
  3576.  
  3577.                Example, assuming array lengths are passed before
  3578.                arrays:
  3579.  
  3580.                    ssssuuuubbbb aaaaeeeeqqqq {{{{   #### ccccoooommmmppppaaaarrrreeee ttttwwwwoooo lllliiiisssstttt vvvvaaaalllluuuueeeessss
  3581.                        llllooooccccaaaallll((((@@@@aaaa)))) ==== sssspppplllliiiicccceeee((((@@@@____,,,,0000,,,,sssshhhhiiiifffftttt))));;;;
  3582.                        llllooooccccaaaallll((((@@@@bbbb)))) ==== sssspppplllliiiicccceeee((((@@@@____,,,,0000,,,,sssshhhhiiiifffftttt))));;;;
  3583.                        rrrreeeettttuuuurrrrnnnn 0000 uuuunnnnlllleeeessssssss @@@@aaaa ======== @@@@bbbb;;;;       #### ssssaaaammmmeeee lllleeeennnn????
  3584.                        wwwwhhhhiiiilllleeee ((((@@@@aaaa)))) {{{{
  3585.                            rrrreeeettttuuuurrrrnnnn 0000 iiiiffff ppppoooopppp((((@@@@aaaa)))) nnnneeee ppppoooopppp((((@@@@bbbb))));;;;
  3586.                        }}}}
  3587.                        rrrreeeettttuuuurrrrnnnn 1111;;;;
  3588.                    }}}}
  3589.                    iiiiffff ((((&&&&aaaaeeeeqqqq(((($$$$lllleeeennnn,,,,@@@@ffffoooooooo[[[[1111........$$$$lllleeeennnn]]]],,,,0000++++@@@@bbbbaaaarrrr,,,,@@@@bbbbaaaarrrr)))))))) {{{{ ............ }}}}
  3590.  
  3591.  
  3592.        split /PATTERN/,EXPR,LIMIT
  3593.  
  3594.        split /PATTERN/,EXPR
  3595.  
  3596.        split /PATTERN/
  3597.  
  3598.        split   Splits a string into an array of strings, and
  3599.                returns it.
  3600.  
  3601.                If not in a list context, returns the number of
  3602.                fields found and splits into the @@@@____ array.  (In a
  3603.                list context, you can force the split into @@@@____ by
  3604.                using ???????? as the pattern delimiters, but it still
  3605.                returns the array value.)  The use of implicit
  3606.                split to @@@@____ is deprecated, however.
  3607.  
  3608.                If EXPR is omitted, splits the $$$$____ string.  If
  3609.                PATTERN is also omitted, splits on whitespace
  3610.                (after skipping any leading whitespace).  Anything
  3611.                matching PATTERN is taken to be a delimiter
  3612.                separating the fields.  (Note that the delimiter
  3613.                may be longer than one character.)  If LIMIT is
  3614.                specified and is not negative, splits into no more
  3615.                than that many fields (though it may split into
  3616.                fewer).  If LIMIT is unspecified, trailing null
  3617.                fields are stripped (which potential users of
  3618.                _p_o_p_(_) would do well to remember).  If LIMIT is
  3619.                negative, it is treated as if an arbitrarily large
  3620.                LIMIT had been specified.
  3621.  
  3622.                A pattern matching the null string (not to be
  3623.                confused with a null pattern ////////, which is just one
  3624.                member of the set of patterns matching a null
  3625.  
  3626.  
  3627.  
  3628. 16/Feb/96                perl 5.002 with                       55
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3635.  
  3636.  
  3637.                string) will split the value of EXPR into separate
  3638.                characters at each point it matches that way.  For
  3639.                example:
  3640.  
  3641.                    pppprrrriiiinnnntttt jjjjooooiiiinnnn((((''''::::'''',,,, sssspppplllliiiitttt((((//// ****////,,,, ''''hhhhiiii tttthhhheeeerrrreeee''''))))))));;;;
  3642.  
  3643.                produces the output 'h:i:t:h:e:r:e'.
  3644.  
  3645.                The LIMIT parameter can be used to partially split
  3646.                a line
  3647.  
  3648.                    (((($$$$llllooooggggiiiinnnn,,,, $$$$ppppaaaasssssssswwwwdddd,,,, $$$$rrrreeeemmmmaaaaiiiinnnnddddeeeerrrr)))) ==== sssspppplllliiiitttt((((////::::////,,,, $$$$____,,,, 3333))));;;;
  3649.  
  3650.                When assigning to a list, if LIMIT is omitted,
  3651.                Perl supplies a LIMIT one larger than the number
  3652.                of variables in the list, to avoid unnecessary
  3653.                work.  For the list above LIMIT would have been 4
  3654.                by default.  In time critical applications it
  3655.                behooves you not to split into more fields than
  3656.                you really need.
  3657.  
  3658.                If the PATTERN contains parentheses, additional
  3659.                array elements are created from each matching
  3660.                substring in the delimiter.
  3661.  
  3662.                    sssspppplllliiiitttt((((////(((([[[[,,,,----]]]]))))////,,,, """"1111----11110000,,,,22220000""""))));;;;
  3663.  
  3664.                produces the list value
  3665.  
  3666.                    ((((1111,,,, ''''----'''',,,, 11110000,,,, '''',,,,'''',,,, 22220000))))
  3667.  
  3668.                If you had the entire header of a normal Unix
  3669.                email message in $$$$hhhheeeeaaaaddddeeeerrrr, you could split it up
  3670.                into fields and their values this way:
  3671.  
  3672.                    $$$$hhhheeeeaaaaddddeeeerrrr ====~~~~ ssss////\\\\nnnn\\\\ssss++++//// ////gggg;;;;  #### ffffiiiixxxx ccccoooonnnnttttiiiinnnnuuuuaaaattttiiiioooonnnn lllliiiinnnneeeessss
  3673.                    %%%%hhhhddddrrrrssss   ====  ((((UUUUNNNNIIIIXXXX____FFFFRRRROOOOMMMM ====>>>> sssspppplllliiiitttt ////^^^^((((....****????))))::::\\\\ssss****////mmmm,,,, $$$$hhhheeeeaaaaddddeeeerrrr))));;;;
  3674.  
  3675.                The pattern ////PPPPAAAATTTTTTTTEEEERRRRNNNN//// may be replaced with an
  3676.                expression to specify patterns that vary at
  3677.                runtime.  (To do runtime compilation only once,
  3678.                use ////$$$$vvvvaaaarrrriiiiaaaabbbblllleeee////oooo.)
  3679.  
  3680.                As a special case, specifying a PATTERN of space
  3681.                ('''' '''') will split on white space just as split with
  3682.                no arguments does.  Thus, split(' ') can be used
  3683.                to emulate aaaawwwwkkkk's default behavior, whereas sssspppplllliiiitttt((((////
  3684.                ////)))) will give you as many null initial fields as
  3685.                there are leading spaces.  A split on /\s+/ is
  3686.                like a split(' ') except that any leading
  3687.                whitespace produces a null first field.  A split
  3688.                with no arguments really does a sssspppplllliiiitttt(((('''' '''',,,, $$$$____))))
  3689.                internally.
  3690.  
  3691.  
  3692.  
  3693.  
  3694. 16/Feb/96                perl 5.002 with                       56
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3701.  
  3702.  
  3703.                Example:
  3704.  
  3705.                    ooooppppeeeennnn((((ppppaaaasssssssswwwwdddd,,,, ''''////eeeettttcccc////ppppaaaasssssssswwwwdddd''''))));;;;
  3706.                    wwwwhhhhiiiilllleeee ((((<<<<ppppaaaasssssssswwwwdddd>>>>)))) {{{{
  3707.                        (((($$$$llllooooggggiiiinnnn,,,, $$$$ppppaaaasssssssswwwwdddd,,,, $$$$uuuuiiiidddd,,,, $$$$ggggiiiidddd,,,, $$$$ggggccccoooossss,,,,
  3708.                            $$$$hhhhoooommmmeeee,,,, $$$$sssshhhheeeellllllll)))) ==== sssspppplllliiiitttt((((////::::////))));;;;
  3709.                        ............
  3710.                    }}}}
  3711.  
  3712.                (Note that $$$$sssshhhheeeellllllll above will still have a newline
  3713.                on it.  See the cccchhhhoooopppp, cccchhhhoooommmmpppp,  and jjjjooooiiiinnnn entries
  3714.                elsewhere in this document.)
  3715.  
  3716.        sprintf FORMAT,LIST
  3717.                Returns a string formatted by the usual printf
  3718.                conventions of the C language.  See the _s_p_r_i_n_t_f_(_3_)
  3719.                manpage or the _p_r_i_n_t_f_(_3_) manpage on your system
  3720.                for details.  (The * character for an indirectly
  3721.                specified length is not supported, but you can get
  3722.                the same effect by interpolating a variable into
  3723.                the pattern.)  Some C libraries' implementations
  3724.                of _s_p_r_i_n_t_f_(_) can dump core when fed ludicrous
  3725.                arguments.
  3726.  
  3727.        sqrt EXPR
  3728.                Return the square root of EXPR.  If EXPR is
  3729.                omitted, returns square root of $$$$____.
  3730.  
  3731.        srand EXPR
  3732.                Sets the random number seed for the rrrraaaannnndddd operator.
  3733.                If EXPR is omitted, does ssssrrrraaaannnndddd((((ttttiiiimmmmeeee)))).  Many folks
  3734.                use an explicit ssssrrrraaaannnndddd((((ttttiiiimmmmeeee ^^^^ $$$$$$$$)))) instead.  Of
  3735.                course, you'd need something much more random than
  3736.                that for cryptographic purposes, since it's easy
  3737.                to guess the current time.  Checksumming the
  3738.                compressed output of rapidly changing operating
  3739.                system status programs is the usual method.
  3740.                Examples are posted regularly to the
  3741.                comp.security.unix newsgroup.
  3742.  
  3743.        stat FILEHANDLE
  3744.  
  3745.        stat EXPR
  3746.                Returns a 13-element array giving the status info
  3747.                for a file, either the file opened via FILEHANDLE,
  3748.                or named by EXPR.  Returns a null list if the stat
  3749.                fails.  Typically used as follows:
  3750.  
  3751.                    (((($$$$ddddeeeevvvv,,,,$$$$iiiinnnnoooo,,,,$$$$mmmmooooddddeeee,,,,$$$$nnnnlllliiiinnnnkkkk,,,,$$$$uuuuiiiidddd,,,,$$$$ggggiiiidddd,,,,$$$$rrrrddddeeeevvvv,,,,$$$$ssssiiiizzzzeeee,,,,
  3752.                       $$$$aaaattttiiiimmmmeeee,,,,$$$$mmmmttttiiiimmmmeeee,,,,$$$$ccccttttiiiimmmmeeee,,,,$$$$bbbbllllkkkkssssiiiizzzzeeee,,,,$$$$bbbblllloooocccckkkkssss))))
  3753.                           ==== ssssttttaaaatttt(((($$$$ffffiiiilllleeeennnnaaaammmmeeee))));;;;
  3754.  
  3755.                Not all fields are supported on all filesystem
  3756.                types.  Here are the meaning of the fields:
  3757.  
  3758.  
  3759.  
  3760. 16/Feb/96                perl 5.002 with                       57
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3767.  
  3768.  
  3769.                  ddddeeeevvvv       ddddeeeevvvviiiicccceeee nnnnuuuummmmbbbbeeeerrrr ooooffff ffffiiiilllleeeessssyyyysssstttteeeemmmm
  3770.                  iiiinnnnoooo       iiiinnnnooooddddeeee nnnnuuuummmmbbbbeeeerrrr
  3771.                  mmmmooooddddeeee      ffffiiiilllleeee mmmmooooddddeeee  ((((ttttyyyyppppeeee aaaannnndddd ppppeeeerrrrmmmmiiiissssssssiiiioooonnnnssss))))
  3772.                  nnnnlllliiiinnnnkkkk     nnnnuuuummmmbbbbeeeerrrr ooooffff ((((hhhhaaaarrrrdddd)))) lllliiiinnnnkkkkssss ttttoooo tttthhhheeee ffffiiiilllleeee
  3773.                  uuuuiiiidddd       nnnnuuuummmmeeeerrrriiiicccc uuuusssseeeerrrr IIIIDDDD ooooffff ffffiiiilllleeee''''ssss oooowwwwnnnneeeerrrr
  3774.                  ggggiiiidddd       nnnnuuuummmmeeeerrrr ggggrrrroooouuuupppp IIIIDDDD ooooffff ffffiiiilllleeee''''ssss oooowwwwnnnneeeerrrr
  3775.                  rrrrddddeeeevvvv      tttthhhheeee ddddeeeevvvviiiicccceeee iiiiddddeeeennnnttttiiiiffffiiiieeeerrrr ((((ssssppppeeeecccciiiiaaaallll ffffiiiilllleeeessss oooonnnnllllyyyy))))
  3776.                  ssssiiiizzzzeeee      ttttoooottttaaaallll ssssiiiizzzzeeee ooooffff ffffiiiilllleeee,,,, iiiinnnn bbbbyyyytttteeeessss
  3777.                  aaaattttiiiimmmmeeee     llllaaaasssstttt aaaacccccccceeeessssssss ttttiiiimmmmeeee ssssiiiinnnncccceeee tttthhhheeee eeeeppppoooocccchhhh
  3778.                  mmmmttttiiiimmmmeeee     llllaaaasssstttt mmmmooooddddiiiiffffyyyy ttttiiiimmmmeeee ssssiiiinnnncccceeee tttthhhheeee eeeeppppoooocccchhhh
  3779.                  ccccttttiiiimmmmeeee     iiiinnnnooooddddeeee cccchhhhaaaannnnggggeeee ttttiiiimmmmeeee ((((NNNNOOOOTTTT ccccrrrreeeeaaaattttiiiioooonnnn ttttyyyyppppeeee!!!!)))) ssssiiiinnnncccceeee tttthhhheeee eeeeppppoooocccchhhh
  3780.                  bbbbllllkkkkssssiiiizzzzeeee   pppprrrreeeeffffeeeerrrrrrrreeeedddd bbbblllloooocccckkkkssssiiiizzzzeeee ffffoooorrrr ffffiiiilllleeee ssssyyyysssstttteeeemmmm IIII////OOOO
  3781.                  bbbblllloooocccckkkkssss    aaaaccccttttuuuuaaaallll nnnnuuuummmmbbbbeeeerrrr ooooffff bbbblllloooocccckkkkssss aaaallllllllooooccccaaaatttteeeedddd
  3782.  
  3783.                (The epoch was at 00:00 January 1, 1970 GMT.)
  3784.  
  3785.                If stat is passed the special filehandle
  3786.                consisting of an underline, no stat is done, but
  3787.                the current contents of the stat structure from
  3788.                the last stat or filetest are returned.  Example:
  3789.  
  3790.                    iiiiffff ((((----xxxx $$$$ffffiiiilllleeee &&&&&&&& (((((((($$$$dddd)))) ==== ssssttttaaaatttt((((____)))))))) &&&&&&&& $$$$dddd <<<< 0000)))) {{{{
  3791.                        pppprrrriiiinnnntttt """"$$$$ffffiiiilllleeee iiiissss eeeexxxxeeeeccccuuuuttttaaaabbbblllleeee NNNNFFFFSSSS ffffiiiilllleeee\\\\nnnn"""";;;;
  3792.                    }}}}
  3793.  
  3794.                (This only works on machines for which the device
  3795.                number is negative under NFS.)
  3796.  
  3797.        study SCALAR
  3798.  
  3799.        study   Takes extra time to study SCALAR ($_ if
  3800.                unspecified) in anticipation of doing many pattern
  3801.                matches on the string before it is next modified.
  3802.                This may or may not save time, depending on the
  3803.                nature and number of patterns you are searching
  3804.                on, and on the distribution of character
  3805.                frequencies in the string to be searched--you
  3806.                probably want to compare runtimes with and without
  3807.                it to see which runs faster.  Those loops which
  3808.                scan for many short constant strings (including
  3809.                the constant parts of more complex patterns) will
  3810.                benefit most.  You may have only one study active
  3811.                at a time--if you study a different scalar the
  3812.                first is "unstudied".  (The way study works is
  3813.                this: a linked list of every character in the
  3814.                string to be searched is made, so we know, for
  3815.                example, where all the 'k' characters are.  From
  3816.                each search string, the rarest character is
  3817.                selected, based on some static frequency tables
  3818.                constructed from some C programs and English text.
  3819.                Only those places that contain this "rarest"
  3820.                character are examined.)
  3821.  
  3822.                For example, here is a loop which inserts index
  3823.  
  3824.  
  3825.  
  3826. 16/Feb/96                perl 5.002 with                       58
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3833.  
  3834.  
  3835.                producing entries before any line containing a
  3836.                certain pattern:
  3837.  
  3838.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  3839.                        ssssttttuuuuddddyyyy;;;;
  3840.                        pppprrrriiiinnnntttt """"....IIIIXXXX ffffoooooooo\\\\nnnn"""" iiiiffff ////\\\\bbbbffffoooooooo\\\\bbbb////;;;;
  3841.                        pppprrrriiiinnnntttt """"....IIIIXXXX bbbbaaaarrrr\\\\nnnn"""" iiiiffff ////\\\\bbbbbbbbaaaarrrr\\\\bbbb////;;;;
  3842.                        pppprrrriiiinnnntttt """"....IIIIXXXX bbbblllluuuurrrrffffllll\\\\nnnn"""" iiiiffff ////\\\\bbbbbbbblllluuuurrrrffffllll\\\\bbbb////;;;;
  3843.                        ............
  3844.                        pppprrrriiiinnnntttt;;;;
  3845.                    }}}}
  3846.  
  3847.                In searching for /\bfoo\b/, only those locations
  3848.                in $$$$____ that contain "f" will be looked at, because
  3849.                "f" is rarer than "o".  In general, this is a big
  3850.                win except in pathological cases.  The only
  3851.                question is whether it saves you more time than it
  3852.                took to build the linked list in the first place.
  3853.  
  3854.                Note that if you have to look for strings that you
  3855.                don't know till runtime, you can build an entire
  3856.                loop as a string and eval that to avoid
  3857.                recompiling all your patterns all the time.
  3858.                Together with undefining $/ to input entire files
  3859.                as one record, this can be very fast, often faster
  3860.                than specialized programs like _f_g_r_e_p(1).  The
  3861.                following scans a list of files (@files) for a
  3862.                list of words (@words), and prints out the names
  3863.                of those files that contain a match:
  3864.  
  3865.                    $$$$sssseeeeaaaarrrrcccchhhh ==== ''''wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{ ssssttttuuuuddddyyyy;;;;'''';;;;
  3866.                    ffffoooorrrreeeeaaaacccchhhh $$$$wwwwoooorrrrdddd ((((@@@@wwwwoooorrrrddddssss)))) {{{{
  3867.                        $$$$sssseeeeaaaarrrrcccchhhh ....==== """"++++++++\\\\$$$$sssseeeeeeeennnn{{{{\\\\$$$$AAAARRRRGGGGVVVV}}}} iiiiffff ////\\\\\\\\bbbb$$$$wwwwoooorrrrdddd\\\\\\\\bbbb////;;;;\\\\nnnn"""";;;;
  3868.                    }}}}
  3869.                    $$$$sssseeeeaaaarrrrcccchhhh ....==== """"}}}}"""";;;;
  3870.                    @@@@AAAARRRRGGGGVVVV ==== @@@@ffffiiiilllleeeessss;;;;
  3871.                    uuuunnnnddddeeeeffff $$$$////;;;;
  3872.                    eeeevvvvaaaallll $$$$sssseeeeaaaarrrrcccchhhh;;;;               #### tttthhhhiiiissss ssssccccrrrreeeeaaaammmmssss
  3873.                    $$$$//// ==== """"\\\\nnnn"""";;;;          #### ppppuuuutttt bbbbaaaacccckkkk ttttoooo nnnnoooorrrrmmmmaaaallll iiiinnnnppppuuuutttt ddddeeeelllliiiimmmm
  3874.                    ffffoooorrrreeeeaaaacccchhhh $$$$ffffiiiilllleeee ((((ssssoooorrrrtttt kkkkeeeeyyyyssss((((%%%%sssseeeeeeeennnn)))))))) {{{{
  3875.                        pppprrrriiiinnnntttt $$$$ffffiiiilllleeee,,,, """"\\\\nnnn"""";;;;
  3876.                    }}}}
  3877.  
  3878.  
  3879.        sub BLOCK
  3880.  
  3881.        sub NAME
  3882.  
  3883.        sub NAME BLOCK
  3884.                This is subroutine definition, not a real function
  3885.                _p_e_r _s_e.  With just a NAME (and possibly
  3886.                prototypes), it's just a forward declaration.
  3887.                Without a NAME, it's an anonymous function
  3888.                declaration, and does actually return a value: the
  3889.  
  3890.  
  3891.  
  3892. 16/Feb/96                perl 5.002 with                       59
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3899.  
  3900.  
  3901.                CODE ref of the closure you just created. See the
  3902.                _p_e_r_l_s_u_b manpage and the _p_e_r_l_r_e_f manpage for
  3903.                details.
  3904.  
  3905.        substr EXPR,OFFSET,LEN
  3906.  
  3907.        substr EXPR,OFFSET
  3908.                Extracts a substring out of EXPR and returns it.
  3909.                First character is at offset 0, or whatever you've
  3910.                set $[ to.  If OFFSET is negative, starts that far
  3911.                from the end of the string.  If LEN is omitted,
  3912.                returns everything to the end of the string.  If
  3913.                LEN is negative, leaves that many characters off
  3914.                the end of the string.
  3915.  
  3916.                You can use the _s_u_b_s_t_r_(_) function as an lvalue, in
  3917.                which case EXPR must be an lvalue.  If you assign
  3918.                something shorter than LEN, the string will
  3919.                shrink, and if you assign something longer than
  3920.                LEN, the string will grow to accommodate it.  To
  3921.                keep the string the same length you may need to
  3922.                pad or chop your value using _s_p_r_i_n_t_f_(_).
  3923.  
  3924.        symlink OLDFILE,NEWFILE
  3925.                Creates a new filename symbolically linked to the
  3926.                old filename.  Returns 1 for success, 0 otherwise.
  3927.                On systems that don't support symbolic links,
  3928.                produces a fatal error at run time.  To check for
  3929.                that, use eval:
  3930.  
  3931.                    $$$$ssssyyyymmmmlllliiiinnnnkkkk____eeeexxxxiiiissssttttssss ==== ((((eeeevvvvaaaallll ''''ssssyyyymmmmlllliiiinnnnkkkk(((("""""""",,,,""""""""))));;;;'''',,,, $$$$@@@@ eeeeqqqq ''''''''))));;;;
  3932.  
  3933.  
  3934.        syscall LIST
  3935.                Calls the system call specified as the first
  3936.                element of the list, passing the remaining
  3937.                elements as arguments to the system call.  If
  3938.                unimplemented, produces a fatal error.  The
  3939.                arguments are interpreted as follows: if a given
  3940.                argument is numeric, the argument is passed as an
  3941.                int.  If not, the pointer to the string value is
  3942.                passed.  You are responsible to make sure a string
  3943.                is pre-extended long enough to receive any result
  3944.                that might be written into a string.  If your
  3945.                integer arguments are not literals and have never
  3946.                been interpreted in a numeric context, you may
  3947.                need to add 0 to them to force them to look like
  3948.                numbers.
  3949.  
  3950.                    rrrreeeeqqqquuuuiiiirrrreeee ''''ssssyyyyssssccccaaaallllllll....pppphhhh'''';;;;               #### mmmmaaaayyyy nnnneeeeeeeedddd ttttoooo rrrruuuunnnn hhhh2222pppphhhh
  3951.                    ssssyyyyssssccccaaaallllllll((((&&&&SSSSYYYYSSSS____wwwwrrrriiiitttteeee,,,, ffffiiiilllleeeennnnoooo((((SSSSTTTTDDDDOOOOUUUUTTTT)))),,,, """"hhhhiiii tttthhhheeeerrrreeee\\\\nnnn"""",,,, 9999))));;;;
  3952.  
  3953.                Note that Perl only supports passing of up to 14
  3954.                arguments to your system call, which in practice
  3955.  
  3956.  
  3957.  
  3958. 16/Feb/96                perl 5.002 with                       60
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  3965.  
  3966.  
  3967.                should usually suffice.
  3968.  
  3969.        sysopen FILEHANDLE,FILENAME,MODE
  3970.  
  3971.        sysopen FILEHANDLE,FILENAME,MODE,PERMS
  3972.                Opens the file whose filename is given by
  3973.                FILENAME, and associates it with FILEHANDLE.  If
  3974.                FILEHANDLE is an expression, its value is used as
  3975.                the name of the real filehandle wanted.  This
  3976.                function calls the underlying operating system's
  3977.                ooooppppeeeennnn function with the parameters FILENAME, MODE,
  3978.                PERMS.
  3979.  
  3980.                The possible values and flag bits of the MODE
  3981.                parameter are system-dependent; they are available
  3982.                via the standard module FFFFccccnnnnttttllll.  However, for
  3983.                historical reasons, some values are universal:
  3984.                zero means read-only, one means write-only, and
  3985.                two means read/write.
  3986.  
  3987.                If the file named by FILENAME does not exist and
  3988.                the ooooppppeeeennnn call creates it (typically because MODE
  3989.                includes the O_CREAT flag), then the value of
  3990.                PERMS specifies the permissions of the newly
  3991.                created file.  If PERMS is omitted, the default
  3992.                value is 0666, which allows read and write for
  3993.                all.  This default is reasonable: see uuuummmmaaaasssskkkk.
  3994.  
  3995.        sysread FILEHANDLE,SCALAR,LENGTH,OFFSET
  3996.  
  3997.        sysread FILEHANDLE,SCALAR,LENGTH
  3998.                Attempts to read LENGTH bytes of data into
  3999.                variable SCALAR from the specified FILEHANDLE,
  4000.                using the system call _r_e_a_d(2).  It bypasses stdio,
  4001.                so mixing this with other kinds of reads may cause
  4002.                confusion.  Returns the number of bytes actually
  4003.                read, or undef if there was an error.  SCALAR will
  4004.                be grown or shrunk to the length actually read.
  4005.                An OFFSET may be specified to place the read data
  4006.                at some other place than the beginning of the
  4007.                string.
  4008.  
  4009.        system LIST
  4010.                Does exactly the same thing as "exec LIST" except
  4011.                that a fork is done first, and the parent process
  4012.                waits for the child process to complete.  Note
  4013.                that argument processing varies depending on the
  4014.                number of arguments.  The return value is the exit
  4015.                status of the program as returned by the _w_a_i_t_(_)
  4016.                call.  To get the actual exit value divide by 256.
  4017.                See also the eeeexxxxeeeecccc entry elsewhere in this
  4018.                document.  This is _N_O_T what you want to use to
  4019.                capture the output from a command, for that you
  4020.                should merely use backticks, as described in the
  4021.  
  4022.  
  4023.  
  4024. 16/Feb/96                perl 5.002 with                       61
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4031.  
  4032.  
  4033.                section on _`_S_T_R_I_N_G_` in the _p_e_r_l_o_p manpage.
  4034.  
  4035.        syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET
  4036.  
  4037.        syswrite FILEHANDLE,SCALAR,LENGTH
  4038.                Attempts to write LENGTH bytes of data from
  4039.                variable SCALAR to the specified FILEHANDLE, using
  4040.                the system call _w_r_i_t_e(2).  It bypasses stdio, so
  4041.                mixing this with prints may cause confusion.
  4042.                Returns the number of bytes actually written, or
  4043.                undef if there was an error.  An OFFSET may be
  4044.                specified to get the write data from some other
  4045.                place than the beginning of the string.
  4046.  
  4047.        tell FILEHANDLE
  4048.  
  4049.        tell    Returns the current file position for FILEHANDLE.
  4050.                FILEHANDLE may be an expression whose value gives
  4051.                the name of the actual filehandle.  If FILEHANDLE
  4052.                is omitted, assumes the file last read.
  4053.  
  4054.        telldir DIRHANDLE
  4055.                Returns the current position of the _r_e_a_d_d_i_r_(_)
  4056.                routines on DIRHANDLE.  Value may be given to
  4057.                _s_e_e_k_d_i_r_(_) to access a particular location in a
  4058.                directory.  Has the same caveats about possible
  4059.                directory compaction as the corresponding system
  4060.                library routine.
  4061.  
  4062.        tie VARIABLE,CLASSNAME,LIST
  4063.                This function binds a variable to a package class
  4064.                that will provide the implementation for the
  4065.                variable.  VARIABLE is the name of the variable to
  4066.                be enchanted.  CLASSNAME is the name of a class
  4067.                implementing objects of correct type.  Any
  4068.                additional arguments are passed to the "new"
  4069.                method of the class (meaning TIESCALAR, TIEARRAY,
  4070.                or TIEHASH).  Typically these are arguments such
  4071.                as might be passed to the _d_b_m___o_p_e_n_(_) function of
  4072.                C.  The object returned by the "new" method is
  4073.                also returned by the _t_i_e_(_) function, which would
  4074.                be useful if you want to access other methods in
  4075.                CLASSNAME.
  4076.  
  4077.                Note that functions such as _k_e_y_s_(_) and _v_a_l_u_e_s_(_)
  4078.                may return huge array values when used on large
  4079.                objects, like DBM files.  You may prefer to use
  4080.                the _e_a_c_h_(_) function to iterate over such.
  4081.                Example:
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090. 16/Feb/96                perl 5.002 with                       62
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4097.  
  4098.  
  4099.                    #### pppprrrriiiinnnntttt oooouuuutttt hhhhiiiissssttttoooorrrryyyy ffffiiiilllleeee ooooffffffffsssseeeettttssss
  4100.                    uuuusssseeee NNNNDDDDBBBBMMMM____FFFFiiiilllleeee;;;;
  4101.                    ttttiiiieeee((((%%%%HHHHIIIISSSSTTTT,,,, NNNNDDDDBBBBMMMM____FFFFiiiilllleeee,,,, ''''////uuuussssrrrr////lllliiiibbbb////nnnneeeewwwwssss////hhhhiiiissssttttoooorrrryyyy'''',,,, 1111,,,, 0000))));;;;
  4102.                    wwwwhhhhiiiilllleeee (((((((($$$$kkkkeeeeyyyy,,,,$$$$vvvvaaaallll)))) ==== eeeeaaaacccchhhh %%%%HHHHIIIISSSSTTTT)))) {{{{
  4103.                        pppprrrriiiinnnntttt $$$$kkkkeeeeyyyy,,,, '''' ==== '''',,,, uuuunnnnppppaaaacccckkkk((((''''LLLL'''',,,,$$$$vvvvaaaallll)))),,,, """"\\\\nnnn"""";;;;
  4104.                    }}}}
  4105.                    uuuunnnnttttiiiieeee((((%%%%HHHHIIIISSSSTTTT))));;;;
  4106.  
  4107.                A class implementing an associative array should
  4108.                have the following methods:
  4109.  
  4110.                    TTTTIIIIEEEEHHHHAAAASSSSHHHH ccccllllaaaassssssssnnnnaaaammmmeeee,,,, LLLLIIIISSSSTTTT
  4111.                    DDDDEEEESSSSTTTTRRRROOOOYYYY tttthhhhiiiissss
  4112.                    FFFFEEEETTTTCCCCHHHH tttthhhhiiiissss,,,, kkkkeeeeyyyy
  4113.                    SSSSTTTTOOOORRRREEEE tttthhhhiiiissss,,,, kkkkeeeeyyyy,,,, vvvvaaaalllluuuueeee
  4114.                    DDDDEEEELLLLEEEETTTTEEEE tttthhhhiiiissss,,,, kkkkeeeeyyyy
  4115.                    EEEEXXXXIIIISSSSTTTTSSSS tttthhhhiiiissss,,,, kkkkeeeeyyyy
  4116.                    FFFFIIIIRRRRSSSSTTTTKKKKEEEEYYYY tttthhhhiiiissss
  4117.                    NNNNEEEEXXXXTTTTKKKKEEEEYYYY tttthhhhiiiissss,,,, llllaaaassssttttkkkkeeeeyyyy
  4118.  
  4119.                A class implementing an ordinary array should have
  4120.                the following methods:
  4121.  
  4122.                    TTTTIIIIEEEEAAAARRRRRRRRAAAAYYYY ccccllllaaaassssssssnnnnaaaammmmeeee,,,, LLLLIIIISSSSTTTT
  4123.                    DDDDEEEESSSSTTTTRRRROOOOYYYY tttthhhhiiiissss
  4124.                    FFFFEEEETTTTCCCCHHHH tttthhhhiiiissss,,,, kkkkeeeeyyyy
  4125.                    SSSSTTTTOOOORRRREEEE tttthhhhiiiissss,,,, kkkkeeeeyyyy,,,, vvvvaaaalllluuuueeee
  4126.                    [[[[ooootttthhhheeeerrrrssss TTTTBBBBDDDD]]]]
  4127.  
  4128.                A class implementing a scalar should have the
  4129.                following methods:
  4130.  
  4131.                    TTTTIIIIEEEESSSSCCCCAAAALLLLAAAARRRR ccccllllaaaassssssssnnnnaaaammmmeeee,,,, LLLLIIIISSSSTTTT
  4132.                    DDDDEEEESSSSTTTTRRRROOOOYYYY tttthhhhiiiissss
  4133.                    FFFFEEEETTTTCCCCHHHH tttthhhhiiiissss,,,,
  4134.                    SSSSTTTTOOOORRRREEEE tttthhhhiiiissss,,,, vvvvaaaalllluuuueeee
  4135.  
  4136.                Unlike _d_b_m_o_p_e_n_(_), the _t_i_e_(_) function will not use
  4137.                or require a module for you--you need to do that
  4138.                explicitly yourself.  See the _D_B___F_i_l_e manpage or
  4139.                the _C_o_n_f_i_g module for interesting _t_i_e_(_)
  4140.                implementations.
  4141.  
  4142.        tied VARIABLE
  4143.                Returns a reference to the object underlying
  4144.                VARIABLE (the same value that was originally
  4145.                returned by the _t_i_e_(_) call which bound the
  4146.                variable to a package.)  Returns the undefined
  4147.                value if VARIABLE isn't tied to a package.
  4148.  
  4149.        time    Returns the number of non-leap seconds since
  4150.                00:00:00 UTC, January 1, 1970.  Suitable for
  4151.                feeding to _g_m_t_i_m_e_(_) and _l_o_c_a_l_t_i_m_e_(_).
  4152.  
  4153.  
  4154.  
  4155.  
  4156. 16/Feb/96                perl 5.002 with                       63
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4163.  
  4164.  
  4165.        times   Returns a four-element array giving the user and
  4166.                system times, in seconds, for this process and the
  4167.                children of this process.
  4168.  
  4169.                    (((($$$$uuuusssseeeerrrr,,,,$$$$ssssyyyysssstttteeeemmmm,,,,$$$$ccccuuuusssseeeerrrr,,,,$$$$ccccssssyyyysssstttteeeemmmm)))) ==== ttttiiiimmmmeeeessss;;;;
  4170.  
  4171.  
  4172.        tr///   The translation operator.  See the _p_e_r_l_o_p manpage.
  4173.  
  4174.        truncate FILEHANDLE,LENGTH
  4175.  
  4176.        truncate EXPR,LENGTH
  4177.                Truncates the file opened on FILEHANDLE, or named
  4178.                by EXPR, to the specified length.  Produces a
  4179.                fatal error if truncate isn't implemented on your
  4180.                system.
  4181.  
  4182.        uc EXPR Returns an uppercased version of EXPR.  This is
  4183.                the internal function implementing the \U escape
  4184.                in double-quoted strings.  Should respect any
  4185.                POSIX _s_e_t_l_o_c_a_l_e_(_) settings.
  4186.  
  4187.        ucfirst EXPR
  4188.                Returns the value of EXPR with the first character
  4189.                uppercased.  This is the internal function
  4190.                implementing the \u escape in double-quoted
  4191.                strings.  Should respect any POSIX _s_e_t_l_o_c_a_l_e_(_)
  4192.                settings.
  4193.  
  4194.        umask EXPR
  4195.  
  4196.        umask   Sets the umask for the process and returns the old
  4197.                one.  If EXPR is omitted, merely returns current
  4198.                umask.
  4199.  
  4200.        undef EXPR
  4201.  
  4202.        undef   Undefines the value of EXPR, which must be an
  4203.                lvalue.  Use only on a scalar value, an entire
  4204.                array, or a subroutine name (using "&").  (Using
  4205.                _u_n_d_e_f_(_) will probably not do what you expect on
  4206.                most predefined variables or DBM list values, so
  4207.                don't do that.)  Always returns the undefined
  4208.                value.  You can omit the EXPR, in which case
  4209.                nothing is undefined, but you still get an
  4210.                undefined value that you could, for instance,
  4211.                return from a subroutine.  Examples:
  4212.  
  4213.                    uuuunnnnddddeeeeffff $$$$ffffoooooooo;;;;
  4214.                    uuuunnnnddddeeeeffff $$$$bbbbaaaarrrr{{{{''''bbbblllluuuurrrrffffllll''''}}}};;;;
  4215.                    uuuunnnnddddeeeeffff @@@@aaaarrrryyyy;;;;
  4216.                    uuuunnnnddddeeeeffff %%%%aaaassssssssoooocccc;;;;
  4217.                    uuuunnnnddddeeeeffff &&&&mmmmyyyyssssuuuubbbb;;;;
  4218.                    rrrreeeettttuuuurrrrnnnn ((((wwwwaaaannnnttttaaaarrrrrrrraaaayyyy ???? (((()))) :::: uuuunnnnddddeeeeffff)))) iiiiffff $$$$tttthhhheeeeyyyy____bbbblllleeeewwww____iiiitttt;;;;
  4219.  
  4220.  
  4221.  
  4222. 16/Feb/96                perl 5.002 with                       64
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4229.  
  4230.  
  4231.        unlink LIST
  4232.                Deletes a list of files.  Returns the number of
  4233.                files successfully deleted.
  4234.  
  4235.                    $$$$ccccnnnntttt ==== uuuunnnnlllliiiinnnnkkkk ''''aaaa'''',,,, ''''bbbb'''',,,, ''''cccc'''';;;;
  4236.                    uuuunnnnlllliiiinnnnkkkk @@@@ggggoooonnnneeeerrrrssss;;;;
  4237.                    uuuunnnnlllliiiinnnnkkkk <<<<****....bbbbaaaakkkk>>>>;;;;
  4238.  
  4239.                Note: unlink will not delete directories unless
  4240.                you are superuser and the ----UUUU flag is supplied to
  4241.                Perl.  Even if these conditions are met, be warned
  4242.                that unlinking a directory can inflict damage on
  4243.                your filesystem.  Use rmdir instead.
  4244.  
  4245.        unpack TEMPLATE,EXPR
  4246.                Unpack does the reverse of pack: it takes a string
  4247.                representing a structure and expands it out into a
  4248.                list value, returning the array value.  (In a
  4249.                scalar context, it merely returns the first value
  4250.                produced.)  The TEMPLATE has the same format as in
  4251.                the pack function.  Here's a subroutine that does
  4252.                substring:
  4253.  
  4254.                    ssssuuuubbbb ssssuuuubbbbssssttttrrrr {{{{
  4255.                        llllooooccccaaaallll(((($$$$wwwwhhhhaaaatttt,,,,$$$$wwwwhhhheeeerrrreeee,,,,$$$$hhhhoooowwwwmmmmuuuucccchhhh)))) ==== @@@@____;;;;
  4256.                        uuuunnnnppppaaaacccckkkk((((""""xxxx$$$$wwwwhhhheeeerrrreeee aaaa$$$$hhhhoooowwwwmmmmuuuucccchhhh"""",,,, $$$$wwwwhhhhaaaatttt))));;;;
  4257.                    }}}}
  4258.  
  4259.                and then there's
  4260.  
  4261.                    ssssuuuubbbb oooorrrrddddiiiinnnnaaaallll {{{{ uuuunnnnppppaaaacccckkkk((((""""cccc"""",,,,$$$$____[[[[0000]]]]))));;;; }}}} #### ssssaaaammmmeeee aaaassss oooorrrrdddd(((())))
  4262.  
  4263.                In addition, you may prefix a field with a
  4264.                %<number> to indicate that you want a <number>-bit
  4265.                checksum of the items instead of the items
  4266.                themselves.  Default is a 16-bit checksum.  For
  4267.                example, the following computes the same number as
  4268.                the System V sum program:
  4269.  
  4270.                    wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
  4271.                        $$$$cccchhhheeeecccckkkkssssuuuummmm ++++==== uuuunnnnppppaaaacccckkkk((((""""%%%%11116666CCCC****"""",,,, $$$$____))));;;;
  4272.                    }}}}
  4273.                    $$$$cccchhhheeeecccckkkkssssuuuummmm %%%%==== 66665555555533336666;;;;
  4274.  
  4275.                The following efficiently counts the number of set
  4276.                bits in a bit vector:
  4277.  
  4278.                    $$$$sssseeeettttbbbbiiiittttssss ==== uuuunnnnppppaaaacccckkkk((((""""%%%%33332222bbbb****"""",,,, $$$$sssseeeelllleeeeccccttttmmmmaaaasssskkkk))));;;;
  4279.  
  4280.  
  4281.        untie VARIABLE
  4282.                Breaks the binding between a variable and a
  4283.                package.  (See _t_i_e_(_).)
  4284.  
  4285.  
  4286.  
  4287.  
  4288. 16/Feb/96                perl 5.002 with                       65
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4295.  
  4296.  
  4297.        unshift ARRAY,LIST
  4298.                Does the opposite of a sssshhhhiiiifffftttt.  Or the opposite of
  4299.                a ppppuuuusssshhhh, depending on how you look at it.  Prepends
  4300.                list to the front of the array, and returns the
  4301.                new number of elements in the array.
  4302.  
  4303.                    uuuunnnnsssshhhhiiiifffftttt((((AAAARRRRGGGGVVVV,,,, ''''----eeee'''')))) uuuunnnnlllleeeessssssss $$$$AAAARRRRGGGGVVVV[[[[0000]]]] ====~~~~ ////^^^^----////;;;;
  4304.  
  4305.                Note the LIST is prepended whole, not one element
  4306.                at a time, so the prepended elements stay in the
  4307.                same order.  Use reverse to do the reverse.
  4308.  
  4309.        use Module LIST
  4310.  
  4311.        use Module
  4312.                Imports some semantics into the current package
  4313.                from the named module, generally by aliasing
  4314.                certain subroutine or variable names into your
  4315.                package.  It is exactly equivalent to
  4316.  
  4317.                    BBBBEEEEGGGGIIIINNNN {{{{ rrrreeeeqqqquuuuiiiirrrreeee MMMMoooodddduuuulllleeee;;;; iiiimmmmppppoooorrrrtttt MMMMoooodddduuuulllleeee LLLLIIIISSSSTTTT;;;; }}}}
  4318.  
  4319.                The BEGIN forces the require and import to happen
  4320.                at compile time.  The require makes sure the
  4321.                module is loaded into memory if it hasn't been
  4322.                yet.  The import is not a builtin--it's just an
  4323.                ordinary static method call into the "Module"
  4324.                package to tell the module to import the list of
  4325.                features back into the current package.  The
  4326.                module can implement its import method any way it
  4327.                likes, though most modules just choose to derive
  4328.                their import method via inheritance from the
  4329.                Exporter class that is defined in the Exporter
  4330.                module. See the _E_x_p_o_r_t_e_r manpage.
  4331.  
  4332.                If you don't want your namespace altered,
  4333.                explicitly supply an empty list:
  4334.  
  4335.                    uuuusssseeee MMMMoooodddduuuulllleeee (((())));;;;
  4336.  
  4337.                That is exactly equivalent to
  4338.  
  4339.                    BBBBEEEEGGGGIIIINNNN {{{{ rrrreeeeqqqquuuuiiiirrrreeee MMMMoooodddduuuulllleeee;;;; }}}}
  4340.  
  4341.                Because this is a wide-open interface, pragmas
  4342.                (compiler directives) are also implemented this
  4343.                way.  Currently implemented pragmas are:
  4344.  
  4345.                    uuuusssseeee iiiinnnntttteeeeggggeeeerrrr;;;;
  4346.                    uuuusssseeee ddddiiiiaaaaggggnnnnoooossssttttiiiiccccssss;;;;
  4347.                    uuuusssseeee ssssiiiiggggttttrrrraaaapppp qqqqwwww((((SSSSEEEEGGGGVVVV BBBBUUUUSSSS))));;;;
  4348.                    uuuusssseeee ssssttttrrrriiiicccctttt  qqqqwwww((((ssssuuuubbbbssss vvvvaaaarrrrssss rrrreeeeffffssss))));;;;
  4349.                    uuuusssseeee ssssuuuubbbbssss    qqqqwwww((((aaaaffffuuuunnnncccc bbbblllluuuurrrrffffllll))));;;;
  4350.  
  4351.  
  4352.  
  4353.  
  4354. 16/Feb/96                perl 5.002 with                       66
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4361.  
  4362.  
  4363.                These pseudomodules import semantics into the
  4364.                current block scope, unlike ordinary modules,
  4365.                which import symbols into the current package
  4366.                (which are effective through the end of the file).
  4367.  
  4368.                There's a corresponding "no" command that
  4369.                unimports meanings imported by use.
  4370.  
  4371.                    nnnnoooo iiiinnnntttteeeeggggeeeerrrr;;;;
  4372.                    nnnnoooo ssssttttrrrriiiicccctttt ''''rrrreeeeffffssss'''';;;;
  4373.  
  4374.                See the _p_e_r_l_m_o_d manpage for a list of standard
  4375.                modules and pragmas.
  4376.  
  4377.        utime LIST
  4378.                Changes the access and modification times on each
  4379.                file of a list of files.  The first two elements
  4380.                of the list must be the NUMERICAL access and
  4381.                modification times, in that order.  Returns the
  4382.                number of files successfully changed.  The inode
  4383.                modification time of each file is set to the
  4384.                current time.  Example of a "touch" command:
  4385.  
  4386.                    ####!!!!////uuuussssrrrr////bbbbiiiinnnn////ppppeeeerrrrllll
  4387.                    $$$$nnnnoooowwww ==== ttttiiiimmmmeeee;;;;
  4388.                    uuuuttttiiiimmmmeeee $$$$nnnnoooowwww,,,, $$$$nnnnoooowwww,,,, @@@@AAAARRRRGGGGVVVV;;;;
  4389.  
  4390.  
  4391.        values ASSOC_ARRAY
  4392.                Returns a normal array consisting of all the
  4393.                values of the named associative array.  (In a
  4394.                scalar context, returns the number of values.)
  4395.                The values are returned in an apparently random
  4396.                order, but it is the same order as either the
  4397.                _k_e_y_s_(_) or _e_a_c_h_(_) function would produce on the
  4398.                same array.  See also _k_e_y_s_(_), _e_a_c_h_(_), and _s_o_r_t_(_).
  4399.  
  4400.        vec EXPR,OFFSET,BITS
  4401.                Treats the string in EXPR as a vector of unsigned
  4402.                integers, and returns the value of the bitfield
  4403.                specified by OFFSET.  BITS specifies the number of
  4404.                bits that are reserved for each entry in the bit
  4405.                vector. This must be a power of two from 1 to 32.
  4406.                _v_e_c_(_) may also be assigned to, in which case
  4407.                parens are needed to give the expression the
  4408.                correct precedence as in
  4409.  
  4410.                    vvvveeeecccc(((($$$$iiiimmmmaaaaggggeeee,,,, $$$$mmmmaaaaxxxx____xxxx **** $$$$xxxx ++++ $$$$yyyy,,,, 8888)))) ==== 3333;;;;
  4411.  
  4412.                Vectors created with _v_e_c_(_) can also be manipulated
  4413.                with the logical operators |, & and ^, which will
  4414.                assume a bit vector operation is desired when both
  4415.                operands are strings.
  4416.  
  4417.  
  4418.  
  4419.  
  4420. 16/Feb/96                perl 5.002 with                       67
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4427.  
  4428.  
  4429.                To transform a bit vector into a string or array
  4430.                of 0's and 1's, use these:
  4431.  
  4432.                    $$$$bbbbiiiittttssss ==== uuuunnnnppppaaaacccckkkk((((""""bbbb****"""",,,, $$$$vvvveeeeccccttttoooorrrr))));;;;
  4433.                    @@@@bbbbiiiittttssss ==== sssspppplllliiiitttt((((////////,,,, uuuunnnnppppaaaacccckkkk((((""""bbbb****"""",,,, $$$$vvvveeeeccccttttoooorrrr))))))));;;;
  4434.  
  4435.                If you know the exact length in bits, it can be
  4436.                used in place of the *.
  4437.  
  4438.        wait    Waits for a child process to terminate and returns
  4439.                the pid of the deceased process, or -1 if there
  4440.                are no child processes.  The status is returned in
  4441.                $?.
  4442.  
  4443.        waitpid PID,FLAGS
  4444.                Waits for a particular child process to terminate
  4445.                and returns the pid of the deceased process, or -1
  4446.                if there is no such child process.  The status is
  4447.                returned in $?.  If you say
  4448.  
  4449.                    uuuusssseeee PPPPOOOOSSSSIIIIXXXX """"wwwwaaaaiiiitttt____hhhh"""";;;;
  4450.                    ............
  4451.                    wwwwaaaaiiiittttppppiiiidddd((((----1111,,,,&&&&WWWWNNNNOOOOHHHHAAAANNNNGGGG))));;;;
  4452.  
  4453.                then you can do a non-blocking wait for any
  4454.                process.  Non-blocking wait is only available on
  4455.                machines supporting either the _w_a_i_t_p_i_d(2) or
  4456.                _w_a_i_t_4(2) system calls.  However, waiting for a
  4457.                particular pid with FLAGS of 0 is implemented
  4458.                everywhere.  (Perl emulates the system call by
  4459.                remembering the status values of processes that
  4460.                have exited but have not been harvested by the
  4461.                Perl script yet.)
  4462.  
  4463.        wantarray
  4464.                Returns TRUE if the context of the currently
  4465.                executing subroutine is looking for a list value.
  4466.                Returns FALSE if the context is looking for a
  4467.                scalar.
  4468.  
  4469.                    rrrreeeettttuuuurrrrnnnn wwwwaaaannnnttttaaaarrrrrrrraaaayyyy ???? (((()))) :::: uuuunnnnddddeeeeffff;;;;
  4470.  
  4471.  
  4472.        warn LIST
  4473.                Produces a message on STDERR just like _d_i_e_(_), but
  4474.                doesn't exit or on an exception.
  4475.  
  4476.        write FILEHANDLE
  4477.  
  4478.        write EXPR
  4479.  
  4480.        write   Writes a formatted record (possibly multi-line) to
  4481.                the specified file, using the format associated
  4482.                with that file.  By default the format for a file
  4483.  
  4484.  
  4485.  
  4486. 16/Feb/96                perl 5.002 with                       68
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492. PERLFUNC(1)    User Contributed Perl Documentation    PERLFUNC(1)
  4493.  
  4494.  
  4495.                is the one having the same name is the filehandle,
  4496.                but the format for the current output channel (see
  4497.                the _s_e_l_e_c_t_(_) function) may be set explicitly by
  4498.                assigning the name of the format to the $~
  4499.                variable.
  4500.  
  4501.                Top of form processing is handled automatically:
  4502.                if there is insufficient room on the current page
  4503.                for the formatted record, the page is advanced by
  4504.                writing a form feed, a special top-of-page format
  4505.                is used to format the new page header, and then
  4506.                the record is written.  By default the top-of-page
  4507.                format is the name of the filehandle with "_TOP"
  4508.                appended, but it may be dynamically set to the
  4509.                format of your choice by assigning the name to the
  4510.                $^ variable while the filehandle is selected.  The
  4511.                number of lines remaining on the current page is
  4512.                in variable $-, which can be set to 0 to force a
  4513.                new page.
  4514.  
  4515.                If FILEHANDLE is unspecified, output goes to the
  4516.                current default output channel, which starts out
  4517.                as STDOUT but may be changed by the sssseeeelllleeeecccctttt
  4518.                operator.  If the FILEHANDLE is an EXPR, then the
  4519.                expression is evaluated and the resulting string
  4520.                is used to look up the name of the FILEHANDLE at
  4521.                run time.  For more on formats, see the _p_e_r_l_f_o_r_m
  4522.                manpage.
  4523.  
  4524.                Note that write is _N_O_T the opposite of read.
  4525.                Unfortunately.
  4526.  
  4527.        y///    The translation operator.  See the section on
  4528.                _t_r_/_/_/ in the _p_e_r_l_o_p manpage.
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552. 16/Feb/96                perl 5.002 with                       69
  4553.  
  4554.  
  4555.