Rex Swain's HTMLified Perl 5
    Reference Guide.
    Taken from http://www.rexswain.com/perl5.html 
    Jump to Contents or Index
    
      Perl 5 Reference Guide
      Last updated 22 March 2001
    
    This is an HTMLified version of the Perl 5 Desktop
    Reference, ISBN 1-56592-187-9, copyright © 1996 by Johan
    Vromans. HTML copyright © 1996-2000 by Rex Swain.
    See Perl 5
    Desktop Reference for information about ordering a printed
    copy ($6.95) of the booklet from O'Reilly. [But it's no longer
    in print -- instead, get the Perl 5 Pocket Reference,
    2nd Edition, updated for Perl version 5.005.] [Now there is
    a 3rd
    Edition, revised to cover Perl version 5.6.]
    See The Perl
    Reference Guide for links to other online versions in
    various formats (PostScript, PDF, etc.).
    For more detail, see 
    Perl Manual or 
    Alphabetical Listing of Perl Functions.
    For less detail, see The
    Perl Language Home Page.
     
    Contents
    
    
     
    Index
    abs  
    accept  alarm 
    and  
    ARGV  
    ArithmeticFunctions  
    ArrayListFunctions  
    ArraysSpecial  atan2 
    BEGIN  
    bind  binmode  bless  
    caller  chdir 
    chmod  
    chomp  chop  chr  
    chroot  close  closedir  
    cmp  CommandLineOptions 
    connect  
    Contents  continue  Conventions  ConversionFunctions  ConversionStructure  cos  crypt 
    dbmclose  
    dbmopen  Debugger  defined  
    delete  die  DirectoryReadingRoutines  do  do 
    do  
    dump  each  else  
    elsif  END  ENV  
    EnvironmentVariables  eof 
    eq  
    eval  eval  exec  
    exists  exit  exp  
    EXPORT  EXPORT_OK 
    ExpressionsRegular  fcntl  fileno  FileOperations  FilesSystemInformationFrom  FileTestOperators  
    flock  for  foreach  
    fork  Formats  formline  
    FunctionsArithmetic  
    FunctionsArrayList  
    FunctionsConversion  
    FunctionsSearchReplace  
    FunctionsString  ge  getc  
    getlogin  getpeername 
    getpgrp  getppid  getpriority  getsockname  
    getsockopt  
    glob  gmtime  goto  
    goto  grep  gt  hex 
    HOME  
    if  import  INC  Index 
    index  
    InformationFromSystemFiles  
    InputOutput  int  InteractionSystem  ioctl  ISA 
    join  keys 
    kill  last  lc  lcfirst  
    le  length  link  
    ListArrayFunctions  
    listen  Literals  local  
    localtime  log  LOGDIR  
    lstat  lt  m  map  Miscellaeous  mkdir  
    Modules  my  ne  
    Networking  next  no  
    npt  
    ObjectOrientedProgramming  
    oct  open  opendir  
    OperationsFile  
    Operators  
    OperatorsFileTest  
    OptionsCommandLine  or 
    ord  
    OutputInput  
    OVERLOAD  pack  package  
    Packages  PATH  PERL5DB  
    PERL5LIB  PERLLIB  pipe  pop  pos  print 
    printf  
    push  quotemeta  rand  read  readdir  
    ReadingDirectoryRoutines  
    readlink  recv  redo  
    ref  RegularExpressions 
    rename  
    ReplaceSearchFunctions  
    require  reset  return  
    reverse  rewindir  rindex  
    rmdir  
    RoutinesDirectoryReading  
    s  scalar  scalar  
    SearchReplaceFunctions  
    seek  seekdir  select  send 
    setpgrp  setpriority  setsockopt  
    shift  shutdown  SIG  
    sin  sleep  socket  
    socketpair  sort  SpecialArrays  SpecialVariables  splice  split  sprintf  
    sqrt  srand  stat  
    Statements  
    StringFunctions  
    StructureConversion  study 
    sub  
    Subroutines  substr  symlink  syscall  
    sysread  system 
    SystemFilesInformationFrom  SystemInteraction  SystemVIPC  
    syswrite  tell  telldir  
    TestFileOperators  
    tie  time  times  
    tr  truncate  uc  ucfirst 
    umask  undef  
    unless  unlink  unpack  
    unshift  untie  until  
    until  use  utime  
    values  Variables  VariablesEnvironment  VariablesSpecial  vec  
    wait  waitpid 
    wantarray  warn  
    while  write  xor  y  
    
     
    Conventions
    
      
        | fixed | denotes literal text. | 
      
        | THIS | means variable text, i.e., things you must fill
        in. | 
      
        | THIS | means that THIS will default to
        $_ if omitted. | 
      
        | word | is a keyword, i.e., a word with a special meaning. | 
      
        | RETURN key | denotes pressing a keyboard key. | 
      
        | [...] | denotes an optional part. | 
    
    
     
    Command-Line Options
    
      - -a
- turns on autosplit mode when used with -n
      or -p. Splits to @F.
- -c
- checks syntax but does not execute.
- -d
- runs the script under the debugger. Use -de
      0 to start the debugger without a script
- -D NUMBER
- sets debugging flags.
- -e 
      COMMANDLINE
- may be used to enter a single line of script. Multiple
      -e commands may be given to build up a
      multiline script.
- -F REGEXP
- specifies a regular expression to split on if 
      -a is in effect.
- -iEXT
- files processed by the < >
      construct are to be edited in place.
- -IDIR
- with -P, tells the C preprocessor where
      to look for include files. The directory is prepended to 
      @INC.
- -l [OCTNUM]
- enables automatic line-end processing, e.g., 
      -l013.
- -n
- assumes an input loop around your script. Lines are not
      printed.
- -p
- assumes an input loop around your script. Lines are
      printed.
- -P
- runs the C preprocessor on the script before compilation
      by Perl.
- -s
- interprets -xxx on the command line as a
      switch and sets the corresponding variable 
      $xxx in the script.
- -S
- uses the PATH environment variable to
      search for the script.
- -T
- forces taint checking.
- -u
- dumps core after compiling the script. To be used with
      the undump(1) program (where available).
- -U
- allows perl to perform unsafe operations.
- -v
- prints the version and patchlevel of your Perl
      executable.
- -w
- prints warnings about possible spelling errors and other
      error-prone constructs in the script.
- -x [DIR]
- extracts Perl program from input stream. If DIR is specified, switches to this directory
      before running the program.
- -0VAL
- (that's the number zero.) Designates an initial value for
      the record separator $/. See also 
      -l
Literals
    
      - Numeric:
- 123
- 1_234
- 123.4
- 5E-10
- 0xff (hex)
- 0377 (octal)
- String:
- 
        
          - 'abc'
- literal string, no variable interpolation or escape
          characters, except \' and 
          \\. Also: q/abc/. Almost any
          pair of delimiters can be used instead of 
          /.../.
- "abc"
- Variables are interpolated and escape sequences are
          processed. Also: qq/abc/.
 Escape sequences: \t (Tab), 
          \n (Newline), \r (Return), 
          \f (Formfeed), \b
          (Backspace), \a (Alarm), 
          \e (Escape), \033 (octal), 
          \x1b (hex), \c[ (control)
 \l and \u
          lowercase/uppercase the following character. 
          \L and \U lowercase/uppercase
          until a \E is encountered. 
          \Q quote regular expression characters until a
          \E is encountered.
- `COMMAND`
- evaluates to the output of the 
          COMMAND. Also: qx/COMMAND/.
 
- Array:
- (1, 2, 3). () is an empty
      array.
 (1..4) is the same as 
      (1,2,3,4),
 likewise ('a'..'z').
 qw/foo bar .../ is the same
      as ('foo','bar',...).
- Array reference:
- [1,2,3]
- Hash (associative array):
- (KEY1, 
      VAL1, 
      KEY2, 
      VAL2,...)
 Also (KEY1=> 
      VAL1, 
      KEY2=> 
      VAL2,...)
- Hash reference:
- {KEY1, 
      VAL1, 
      KEY2, 
      VAL2,...}
- Code reference:
- sub {STATEMENTS}
- Filehandles:
- <STDIN>, 
      <STDOUT>, <STDERR>, 
      <ARGV>, <DATA>.
 User-specified: HANDLE, 
      $VAR.
- Globs:
- <PATTERN> evaluates to all
      filenames according to the pattern. Use 
      <${VAR}> or glob 
      $VAR to glob from a
      variable.
- Here-Is:
- <<IDENTIFIER
 Shell-style "here document."
- Special tokens:
- __FILE__: filename; 
      __LINE__: line number; __END__: end
      of program; remaining lines can be read using the filehandle
      DATA.
Variables
    
      
        | $var | a simple scalar variable. | 
      
        | $var[28] | 29th element of array 
        @var. | 
      
        | $p = \@var | now $p is a reference to
        array @var. | 
      
        | $$p[28] | 29th element of array referenced by 
        $p. Also, $p->[28].
 | 
      
        | $var[-1] | last element of array 
        @var. | 
      
        | $var[$i][$j] | $jth element of the 
        $ith element of array 
        @var. | 
      
        | $var{'Feb'} | one value from hash (associative array)
        %var. | 
      
        | $p = \%var | now $p is a reference to
        hash %var. | 
      
        | $$p{'Feb'} | a value from hash referenced by 
        $p. Also, $p->{'Feb'}.
 | 
      
        | $#var | last index of array 
        @var. | 
      
        | @var | the entire array; in a scalar context, the
        number of elements in the array. | 
      
        | @var[3,4,5] | a slice of array 
        @var. | 
      
        | @var{'a','b'} | a slice of %var; same as
        ($var{'a'},$var{'b'}). | 
      
        | %var | the entire hash; in a scalar context, 
        true if the hash has elements. | 
      
        | $var{'a',1,...} | emulates a multidimensional array. | 
      
        | ('a'...'z')[4,7,9] | a slice of an array literal. | 
      
        | PKG::VAR | a variable from a package, e.g., 
        $pkg::var, @pkg::ary. | 
      
        | \OBJECT | reference to an object, e.g., 
        \$var, \%hash. | 
      
        | *NAME | refers to all objects represented by NAME. *n1 = *n2 makes n1 an alias
        for n2.
 *n1 = $n2 makes $n1 an
        alias for $n2.
 | 
    
    You can always use a {BLOCK} returning the right type of
    reference instead of the variable identifier, e.g., 
    ${...}, 
    &{...}. $$p is
    just a shorthand for ${$p}.
    
     
    Operators
    
      
        | ** |  | Exponentiation | 
      
        | + - | * / | Addition, subtraction, multiplication, division | 
      
        | % |  | Modulo division | 
      
        | & | | ^ | Bitwise AND, bitwise OR, bitwise exclusive OR | 
      
        | >> | << | Bitwise shift right, bitwise shift left | 
      
        | || | && | Logical OR, logical AND | 
      
        | . |  | Concatenation of two strings | 
      
        | x |  | Returns a string or array consisting of
        the left operand (an array or a string) repeated the number
        of times specified by the right operand | 
      
        | All of the above operators also have an
        assignment operator, e.g., .= | 
      
        | -> |  | Dereference operator | 
      
        | \ |  | Reference (unary) | 
      
        | ! | ~ | Negation (unary), bitwise complement (unary) | 
      
        | ++ | -- | Auto-increment (magical on strings),
        auto-decrement | 
      
        | == | != | Numeric equality, inequality | 
      
        | eq | ne | String equality, inequality | 
      
        | < | > | Numeric less than, greater than | 
      
        | lt | gt | String less than, greater than | 
      
        | <= | >= | Numeric less (greater) than or equal to | 
      
        | le | ge | String less (greater) than or equal to | 
      
        | <=> | cmp | Numeric (string) compare. Returns -1, 0, 1. | 
      
        | =~ | !~ | Search pattern, substitution, or translation
        (negated) | 
      
        | .. |  | Range (scalar context) or enumeration (array
        context) | 
      
        | ?: |  | Alternation (if-then-else) operator | 
      
        | , |  | Comma operator, also list element separator. You can
        also use =>. | 
      
        | not |  | Low-precedence negation | 
      
        | and |  | Low-precedence AND | 
      
        | or | xor | Low-precedence OR, exclusive OR | 
    
    All Perl functions can be used as list operators, in which
    case they have very high or very low precedence, depending on
    whether you look at the left or the right side of the operator.
    Only the operators not, and, or and 
    xor have lower precedence.
    A "list" is a list of expressions, variables, or lists. An
    array variable or an array slice may always be used instead of
    a list.
    Parentheses can be added around the parameter lists to avoid
    precedence problems.
    
     
    Statements
    Every statement is an expression, optionally followed by a
    modifier, and terminated by a semicolon. The semicolon may be
    omitted if the statement is the final one in a 
    BLOCK.
    Execution of expressions can depend on other expressions
    using one of the modifiers if, unless, 
    while or until, for example:
    
      EXPR1 if 
      EXPR2 ;
      EXPR1 until 
      EXPR2 ;
    
    The logical operators ||, 
    && or ?: also allow
    conditional execution:
    
      EXPR1 || EXPR2 ;
      EXPR1 ? EXPR2 : 
      EXPR3 ;
    
    Statements can be combined to form a 
    BLOCK when enclosed in {}. Blocks may be
    used to control flow:
    
      if (EXPR) 
      BLOCK [ [ elsif (EXPR) 
      BLOCK ... ] else BLOCK
      ]
      unless (EXPR) 
      BLOCK [ else BLOCK ]
      [ LABEL: ] 
      while (EXPR) 
      BLOCK [ continue BLOCK
      ]
      [ LABEL: ] 
      until (EXPR) 
      BLOCK [ continue BLOCK
      ]
      [ LABEL: ] for
      (EXPR; EXPR; 
      EXPR) BLOCK
      [ LABEL: ] 
      foreach VAR (LIST) BLOCK
      [ LABEL: ] BLOCK [ continue 
      BLOCK ]
    
    Program flow can be controlled with:
    
      
        
          | goto 
          LABEL | Continue execution at the specified label. | 
        
          | last [ 
          LABEL ] | Immediately exits the loop in question. Skips
          continue block. | 
        
          | next [ 
          LABEL ] | Starts the next iteration of the loop. | 
        
          | redo [ 
          LABEL ] | Restarts the loop block without evaluating the
          conditional again. | 
      
    
    Special forms are:
    
      do BLOCK while EXPR ;
      do BLOCK until EXPR ;
    
    which are guaranteed to perform BLOCK
    once before testing EXPR, and
    
      do BLOCK
    
    which effectively turns BLOCK into an
    expression.
    
     
    Subroutines, Packages and Modules
    
      - &SUBROUTINE
      LIST
- Executes a SUBROUTINE declared by
      a sub declaration, and returns the value of the last
      expression evaluated in SUBROUTINE.
      SUBROUTINE can be an expression
      yielding a reference to a code object. The 
      & may be omitted if the subroutine has been
      declared before being used.
- bless REF [ 
      , PACKAGE ]
- Turns the object REF into an
      object in PACKAGE. Returns the
      reference.
- caller [ EXPR ]
- Returns an array
      ($package,$file,$line,...)
      for a specific subroutine call. caller
      returns this info for the current subroutine, 
      caller(1) for the caller of this subroutine, etc.
      Returns false if no caller.
- do SUBROUTINE LIST
- Deprecated form of &SUBROUTINE.
- goto &SUBROUTINE
- Substitutes a call to SUBROUTINE
      for the current subroutine.
- import MODULE [ [ VERSION ] LIST ]
- Imports the named subroutines from 
      MODULE.
- no MODULE [ LIST ]
- Cancels imported semantics. See use.
- package NAME
- Designates the remainder of the current block as a
      package.
- require EXPR
- If EXPR is numeric, requires Perl
      to be at least that version. Otherwise 
      EXPR must be the name of a file that is included from
      the Perl library. Does not include more than once, and yields
      a fatal error if the file does not evaluate to a true
      value. If EXPR is a bare word, assumes
      extension .pm for the name of the file.
- return EXPR
- Returns from a subroutine with the value specified.
- sub NAME {
      EXPR ; ... 
      }
- Designates NAME as a subroutine.
      Parameters are passed by reference as array 
      @_. Returns the value of the last expression
      evaluated.
- [ sub ] BEGIN {
      EXPR ; ... 
      }
- Defines a setup BLOCK to be called
      before execution.
- [ sub ] END {
      EXPR ; ... 
      }
- Defines a cleanup BLOCK to be
      called upon termination.
- tie VAR,
      PACKAGE, [ LIST ]
- Ties a variable to a package that will handle it. Can be
      used to bind a dbm or ndbm file to a hash.
- untie VAR
- Breaks the binding between the variable and the
      package.
- use MODULE [ [ VERSION ] LIST ]
- Imports semantics from the named module into the current
      package.
Object-Oriented Programming
    Perl rules of object oriented programming:
    
      - An object is simply a reference that happens to know
      which class it belongs to. Objects are blessed, references
      are not.
- A class is simply a package that happens to provide
      methods to deal with object references. If a package fails to
      provide a method, the base classes as listed in 
      @ISA are searched.
- A method is simply a subroutine that expects an object
      reference (or a package name, for static methods) as the
      first argument.
Methods can be applied with:
    
      METHOD OBJREF
      PARAMETERS
                or
      OBJREF->METHOD PARAMETERS
    
    
     
    Arithmetic Functions
    
      
        | abs 
        EXPR | Returns the absolute value of its
        operand. | 
      
        | atan2 
        Y,X | Returns the arctangent of 
        Y/X in the range -pi to pi. | 
      
        | cos 
        EXPR | Returns the cosine of 
        EXPR (expressed in radians). | 
      
        | exp 
        EXPR | Returns e to the power of
        EXPR. | 
      
        | int 
        EXPR | Returns the integer portion of EXPR. | 
      
        | log 
        EXPR | Returns natural logarithm (base 
        e) of EXPR. | 
      
        | rand [ EXPR
        ] | Returns a random fractional number between
        0 and the value of EXPR. If EXPR is omitted, returns a value between 0
        and 1. | 
      
        | sin 
        EXPR | Returns the sine of 
        EXPR (expressed in radians). | 
      
        | sqrt 
        EXPR | Returns the square root of EXPR. | 
      
        | srand [ 
        EXPR ] | Sets the random number seed for the 
        rand operator. | 
      
        | time | Returns the number of seconds since
        January 1, 1970. Suitable for feeding to gmtime and
        localtime. | 
    
    
     
    Conversion Functions
    
      - chr EXPR
- Returns the character represented by the decimal value
      EXPR.
- gmtime EXPR
- Converts a time as returned by the time function
      to a 9-element array (0: $sec,
      1: $min, 2: $hour,
      3: $mday, 4: $mon,
      5: $year, 6: $wday,
      7: $yday, 8: 
      $isdst) with the time analyzed for the Greenwich
      time zone. $mon has the range 0..11 and 
      $wday has the range 0..6.
- hex EXPR
- Returns the decimal value of EXPR
      interpreted as a hex string.
- localtime EXPR
- Converts a time as returned by the time function
      to ctime(3) string. In array context, returns a
      9-element array with the time analyzed for the local time
      zone.
- oct EXPR
- Returns the decimal value of EXPR
      interpreted as an octal string. If 
      EXPR starts off with 0x, interprets it
      as a hex string instead.
- ord EXPR
- Returns the ASCII value of the first character of EXPR.
- vec EXPR,
      OFFSET, BITS
- Treats string EXPR as a vector of
      unsigned integers, and yields the bit at 
      OFFSET. BITS must be between 1
      and 32. May be assigned to.
Structure Conversion
    
      - pack 
      TEMPLATE, 
      LIST
- Packs the values into a binary structure using TEMPLATE.
- unpack 
      TEMPLATE, 
      EXPR
- Unpacks the structure EXPR into an
      array, using TEMPLATE.
TEMPLATE is a sequence of characters
    as follows:
    
      
        
          | a / A | ASCII string, null- / space-padded | 
        
          | b / B | Bit string in ascending / descending order | 
        
          | c / C | Native / unsigned char value | 
        
          | f / d | Single / double float in native format | 
        
          | h / H | Hex string, low / high nybble first | 
        
          | i / I | Signed / unsigned integer value | 
        
          | l / L | Signed / unsigned long value | 
        
          | n / N | Short / long in network (big endian) byte order | 
        
          | s / S | Signed / unsigned short value | 
        
          | u / P | Uuencoded string / pointer to a string | 
        
          | v / V | Short / long in VAX (little endian) byte order | 
        
          | x / @ | Null byte / null fill until position | 
        
          | X | Backup a byte | 
      
    
    Each character may be followed by a decimal number that will
    be used as a repeat count; an asterisk (*)
    specifies all remaining arguments. If the format is preceded
    with %N, unpack
    returns an N-bit checksum instead.
    Spaces may be included in the template for readability
    purposes.
    
     
    String Functions
    
      - chomp LIST
- Removes line endings from all elements of the list;
      returns the (total) number of characters removed.
- chop LIST
- Chops off the last character on all elements of the list;
      returns the last chopped character.
- crypt 
      PLAINTEXT, 
      SALT
- Encrypts a string.
- eval EXPR
- EXPR is parsed and executed as if
      it were a Perl program. The value returned is the value of
      the last expression evaluated. If there is a syntax error or
      runtime error, an undefined string is returned by 
      eval, and $@ is set to the error message.
      See also eval in section 
      Miscellaneous.
- index STR,
      SUBSTR [ , OFFSET ]
- Returns the position of SUBSTR in
      STR at or after 
      OFFSET. If the substring is not found, returns 
      -1 (but see $[ in section Special Variables).
- length EXPR
- Returns the length in characters of the value of EXPR.
- lc EXPR
- Returns a lowercase version of 
      EXPR.
- lcfirst EXPR
- Returns EXPR with the first
      character lowercase.
- quotemeta EXPR
- Returns EXPR with all regular
      expression metacharacters quoted.
- rindex STR,
      SUBSTR [ , OFFSET ]
- Returns the position of the last 
      SUBSTR in STR at or before
      OFFSET.
- substr 
      EXPR, OFFSET [
      , LEN ]
- Extracts a substring of length LEN
      out of EXPR and returns it. If OFFSET is negative, counts from the end of
      the string. May be assigned to.
- uc EXPR
- Returns an uppercased version of 
      EXPR.
- ucfirst EXPR
- Returns EXPR with the first
      character uppercased.
Array and List Functions
    
      - delete $HASH{KEY}
- Deletes the specified value from the specified hash.
      Returns the deleted value unless HASH
      is tied to a package that does not support this.
- each %HASH
- Returns a 2-element array consisting of the key and value
      for the next value of the hash. Entries are returned in an
      apparently random order. After all values of the hash have
      been returned, a null array is returned. The next call to 
      each after that will start iterating again.
- exists EXPR
- Checks if the specified hash key exists in its hash
      array.
- grep EXPR,
      LIST
 grep BLOCK 
      LIST
- Evaluates EXPR or 
      BLOCK for each element of the 
      LIST, locally setting $_ to refer to
      the element. Modifying $_ will modify the
      corresponding element from LIST.
      Returns the array of elements from 
      LIST for which EXPR returned
      true.
- join EXPR,
      LIST
- Joins the separate strings of LIST
      into a single string with fields separated by the value of
      EXPR, and returns the string.
- keys %HASH
- Returns an array with all of the keys of the named
      hash.
- map EXPR,
      LIST
 map BLOCK 
      LIST
- Evaluates EXPR or 
      BLOCK for each element of the 
      LIST, locally setting $_ to refer to
      the element. Modifying $_ will modify the
      corresponding element from LIST.
      Returns the list of results.
- pop @ARRAY
- Pops off and returns the last value of the array.
- push @ARRAY, 
      LIST
- Pushes the values of LIST onto the
      end of the array.
- reverse LIST
- In array context, returns the LIST
      in reverse order. In scalar context: returns the first
      element of LIST with bytes
      reversed.
- scalar @ARRAY
- Returns the number of elements in the array.
- scalar %HASH
- Returns a true value if the hash has elements
      defined.
- shift [ @ARRAY ]
- Shifts the first value of the array off and returns it,
      shortening the array by 1 and moving everything down. If 
      @ARRAY is omitted, shifts
      @ARGV in main and @_ in
      subroutines.
- sort [ SUBROUTINE ] LIST
- Sorts the LIST and returns the
      sorted array value. SUBROUTINE, if
      specified, must return less than zero, zero, or greater than
      zero, depending on how the elements of the array (available
      to the routine as $a and $b)
      are to be ordered. SUBROUTINE may be
      the name of a user-defined routine, or a 
      BLOCK.
- splice @ARRAY, 
      OFFSET [ , 
      LENGTH [ , LIST
      ] ]
- Removes the elements of @ARRAY designated by OFFSET
      and LENGTH, and replaces them with
      LIST (if specified). Returns the
      elements removed.
- split [ PATTERN [ 
      , EXPR [ 
      , LIMIT ] ] ]
- Splits a string into an array of strings, and returns it.
      If LIMIT is specified, splits into at
      most that number of fields. If PATTERN
      is also omitted, splits at the whitespace. If not in array
      context, returns number of fields and splits to 
      @_. See also Search and Replace
      Functions.
- unshift @ARRAY, 
      LIST
- Prepends list to the front of the array, and returns the
      number of elements in the new array.
- values %HASH
- Returns a normal array consisting of all the values of
      the named hash.
Regular Expressions
    Each character matches itself, unless it is one of the
    special characters + ? . * ^ $ ( ) [ ] { } | \.
    The special meaning of these characters can be escaped using a
    \.
    
      
        | . | matches an arbitrary character, but not a
        newline unless it is a single-line match (see 
        m//s). | 
      
        | (...) | groups a series of pattern elements to a single
        element. | 
      
        | ^ | matches the beginning of the target. In
        multiline mode (see m//m) also matches after every
        newline character. | 
      
        | $ | matches the end of the line. In multiline mode also
        matches before every newline character. | 
      
        | [ ... 
        ] | denotes a class of characters to match. 
        [^ ... ] negates the class. | 
      
        | ( ... |
        ... | ... ) | matches one of the alternatives. | 
      
        | (?# 
        TEXT ) | Comment. | 
      
        | (?: 
        REGEXP ) | Like (REGEXP) but does not make
        back-references. | 
      
        | (?= 
        REGEXP ) | Zero width positive look-ahead assertion. | 
      
        | (?! 
        REGEXP ) | Zero width negative look-ahead assertion. | 
      
        | (? 
        MODIFIER ) | Embedded pattern-match modifier. 
        MODIFIER can be one or more of i, m,
        s, or x. | 
      
        | Quantified subpatterns match as many times as possible.
        When followed with a ? they match the
        minimum number of times. These are the quantifiers:
 
 
 | 
      
        | + | matches the preceding pattern element one or more
        times. | 
      
        | ? | matches zero or one times. | 
      
        | * | matches zero or more times. | 
      
        | {N,M} | denotes the minimum N and
        maximum M match count. 
        {N} means
        exactly N times; 
        {N,} means at
        least N times. | 
      
        | A \ escapes any special meaning of the
        following character if non-alphanumeric, but it turns most
        alphanumeric characters into something special:
 
 
 | 
      
        | \w | matches alphanumeric, including _, 
        \W matches non-alphanumeric. | 
      
        | \s | matches whitespace, \S matches
        non-whitespace. | 
      
        | \d | matches numeric, \D matches
        non-numeric. | 
      
        | \A | matches the beginning of the string, \Z
        matches the end. | 
      
        | \b | matches word boundaries, \B matches
        non-boundaries. | 
      
        | \G | matches where the previous m//g search left
        off. | 
      
        | \n, \r, 
        \f, \t | etc. have their usual meaning. | 
      
        | \w, \s and 
        \d | may be used within character classes, 
        \b denotes backspace in this context. | 
      
        | Back-references:
 
 
 | 
      
        | \1 ... 
        \9 | refer to matched subexpressions, grouped with 
        (), inside the match. | 
      
        | \10 | and up can also be used if the pattern matches that
        many subexpressions. | 
    
    See also $1 ... $9,
    $+, $&, $`,
    and $' in section 
    Special Variables.
    With modifier x, whitespace can be used in the
    patterns for readability purposes.
    
     
    Search and Replace Functions
    
      - [ EXPR =~ ] [ 
      m ] /PATTERN/ [ g ] [ i
      ] [ m ] [ o ] [ s ] [ x ]
- Searches EXPR (default: 
      $_) for a pattern. If you prepend an m you
      can use almost any pair of delimiters instead of the slashes.
      If used in array context, an array is returned consisting of
      the subexpressions matched by the parentheses in the pattern,
      i.e., ($1,$2,$3,...).
 Optional modifiers: g matches as many times as
      possible; i searches in a case-insensitive manner; 
      o interpolates variables only once. m treats the
      string as multiple lines; s treats the string as a
      single line; x allows for regular expression
      extensions.
 If PATTERN is empty, the most recent
      pattern from a previous match or replacement is used.
 With g the match can be used as an iterator in scalar
      context.
- ?PATTERN?
- This is just like the /PATTERN/ search, except that it
      matches only once between calls to the reset
      operator.
- [ $VAR 
      =~ ] s/PATTERN/REPLACEMENT/ [ e ] [ 
      g ] [ i ] [ m ] [ o ] [ s ] [
      x ]
- Searches a string for a pattern, and if found, replaces
      that pattern with the replacement text. It returns the number
      of substitutions made, if any; if no substitutions are made,
      it returns false.
 Optional modifiers: g replaces all occurrences of the
      pattern; e evaluates the replacement string as a Perl
      expression; for any other modifiers, see 
      /PATTERN/
      matching. Almost any delimiter may replace the slashes; if
      single quotes are used, no interpretation is done on the
      strings between the delimiters, otherwise the strings are
      interpolated as if inside double quotes.
 If bracketing delimiters are used, 
      PATTERN and REPLACEMENT may
      have their own delimiters, e.g., s(foo)[bar].
      If PATTERN is empty, the most recent
      pattern from a previous match or replacement is used.
- [ $VAR 
      =~ ] tr/SEARCHLIST/REPLACEMENTLIST/ [ c ] [
      d ] [ s ]
- Translates all occurrences of the characters found in the
      search list with the corresponding character in the
      replacement list. It returns the number of characters
      replaced. y may be used instead of tr.
 Optional modifiers: c complements the 
      SEARCHLIST; d deletes all characters found in
      SEARCHLIST that do not have a
      corresponding character in 
      REPLACEMENTLIST; s squeezes all sequences of
      characters that are translated into the same target character
      into one occurrence of this character.
- pos SCALAR
- Returns the position where the last m//g search
      left off for SCALAR. May be assigned
      to.
- study [ $VAR ]
- Study the scalar variable $VAR in anticipation of performing many pattern
      matches on its contents before the variable is next
      modified.
File Test Operators
    These unary operators takes one argument, either a filename or
    a filehandle, and test the associated file to see if something
    is true about it. If the argument is omitted, they test 
    $_ (except for -t, which tests 
    STDIN). If the special argument _
    (underscore) is passed, they use the information from the
    preceding test or stat call. 
    
    
      
        | -r -w -x | File is readable/writable/executable by
        effective uid/gid. | 
      
        | -R -W -X | File is readable/writable/executable by
        real uid/gid. | 
      
        | -o -O | File is owned by effective/real uid. | 
      
        | -e -z | File exists/has zero size. | 
      
        | -s | File exists and has non-zero size. Returns
        the size. | 
      
        | -f -d | File is a plain file/a directory. | 
      
        | -l -S -p | File is a symbolic link/a socket/a named
        pipe (FIFO). | 
      
        | -b -c | File is a block/character special
        file. | 
      
        | -u -g -k | File has setuid/setgid/sticky bit
        set. | 
      
        | -t | Tests if filehandle (STDIN
        by default) is opened to a tty. | 
      
        | -T -B | File is a text/non-text (binary) file.
        -T and -B return 
        true on a null file, or a file at EOF when testing a
        filehandle. | 
      
        | -M -A -C | File modification / access / inode-change
        time. Measured in days. Value returned reflects the file
        age at the time the script started. See also 
        $^T in the section 
        Special Variables. | 
    
    
     
    File Operations
    Functions operating on a list of files return the number of
    files successfully operated upon. 
    
      - chmod LIST
- Changes the permissions of a list of files. The first
      element of the list must be the numerical mode.
- chown LIST
- Changes the owner and group of a list of files. The first
      two elements of the list must be the numerical uid and
      gid.
- truncate 
      FILE, SIZE
- Truncates FILE to 
      SIZE. FILE may be a filename or
      a filehandle.
- link 
      OLDFILE, 
      NEWFILE
- Creates a new filename linked to the old filename.
- lstat FILE
- Like stat, but does not traverse a final symbolic
      link.
- mkdir DIR,
      MODE
- Creates a directory with given permissions. Sets 
      $! on failure.
- readlink EXPR
- Returns the value of a symbolic link.
- rename 
      OLDNAME, 
      NEWNAME
- Changes the name of a file.
- rmdir FILENAME
- Deletes the directory if it is empty. Sets 
      $! on failure.
- stat FILE
- Returns a 13-element array (0: $dev,
      1: $ino, 2: $mode,
      3: $nlink, 4: $uid,
      5: $gid, 6: $rdev,
      7: $size, 8: 
      $atime, 9: $mtime,
      10: $ctime, 11: 
      $blksize, 12: $blocks). FILE can be a filehandle, an expression
      evaluating to a filename, or _ to refer to
      the last file test operation or stat call. Returns a
      null list if the stat fails.
- symlink OLDFILE, NEWFILE
- Creates a new filename symbolically linked to the old
      filename.
- unlink LIST
- Deletes a list of files.
- utime LIST
- Changes the access and modification times. The first two
      elements of the list must be the numerical access and
      modification times.
Input / Output
    In input/output operations, FILEHANDLE
    may be a filehandle as opened by the open operator, a
    predefined filehandle (e.g., STDOUT) or a
    scalar variable that evaluates to the name of a filehandle to
    be used. 
    
      - <FILEHANDLE>
- In scalar context, reads a single line from the file
      opened on FILEHANDLE. In array
      context, reads the whole file.
- < >
- Reads from the input stream formed by the files specified
      in @ARGV, or standard input if no arguments
      were supplied.
- binmode FILEHANDLE
- Arranges for the file opened on 
      FILEHANDLE to be read or written in binary mode
      as opposed to text mode (null operation on UNIX).
- close FILEHANDLE
- Closes the file or pipe associated with the
      filehandle.
- dbmclose %HASH
- Deprecated, use untie instead.
- dbmopen %HASH, 
      DBMNAME, 
      MODE
- Deprecated, use tie instead.
- eof FILEHANDLE
- Returns true if the next read will return end of
      file, or if the file is not open.
- eof
- Returns the EOF status for the last file read.
- eof()
- Indicates EOF on the pseudo file formed of the files
      listed on the command line.
- fcntl 
      FILEHANDLE, 
      FUNCTION, $VAR
- Implements the fcntl(2) function. This function
      has non-standard return values.
- fileno FILEHANDLE
- Returns the file descriptor for a given (open) file.
- flock 
      FILEHANDLE, 
      OPERATION
- Calls flock(2) on the file. 
      OPERATION formed by adding 1 (shared), 2 (exclusive),
      4 (non-blocking), or 8 (unlock).
- getc [ FILEHANDLE ]
- Yields the next character from the file, or an empty
      string on end of file. If FILEHANDLE
      is omitted, reads from STDIN.
- ioctl 
      FILEHANDLE, 
      FUNCTION, $VAR
- Performs ioctl(2) on the file. This function has
      non-standard return values.
- open FILEHANDLE [ 
      , FILENAME ]
- 
        Opens a file and associates it with 
        FILEHANDLE. If FILENAME is
        omitted, the scalar variable of the same name as the FILEHANDLE must contain the filename.
 The following filename conventions apply when opening a
        file.
 
          
            | "FILE" | open FILE for input. Also
            "<FILE". |  
            | ">FILE" | open FILE for output,
            creating it if necessary. |  
            | ">>FILE" | open FILE in append
            mode. |  
            | "+<FILE" | open FILE with read/write
            access (file must exist). |  
            | "+>FILE" | open FILE with read/write
            access (file truncated). |  
            | "|CMD" | opens a pipe to command CMD;
            forks if CMD is 
            -. |  
            | "CMD|" | opens a pipe from command 
            CMD; forks if CMD is 
            -. |  
 FILE may be 
        &FILEHND in which case
        the new filehandle is connected to the (previously opened)
        filehandle FILEHND. If it is 
        &=N, 
        FILE will be connected to the given file descriptor.
        open returns undef upon failure, true
        otherwise.
- pipe 
      READHANDLE, 
      WRITEHANDLE
- Returns a pair of connected pipes.
- print [ FILEHANDLE ] [
      LIST ]
- Equivalent to print 
      FILEHANDLE sprintf 
      LIST.
- printf[([FILEHANDLE] 
      LIST)]
- Equivalent to print 
      FILEHANDLE sprintf(LIST).
- read 
      FILEHANDLE, $VAR, 
      LENGTH [ , 
      OFFSET ]
- Reads LENGTH binary bytes from the
      file into the variable at OFFSET.
      Returns number of bytes actually read.
- seek 
      FILEHANDLE, 
      POSITION, 
      WHENCE
- Arbitarily positions the file. Returns true if
      successful.
- select [ FILEHANDLE ]
- Returns the currently selected filehandle. Sets the
      current default filehandle for output operations if FILEHANDLE is supplied.
- select 
      RBITS, 
      WBITS, 
      NBITS, 
      TIMEOUT
- Performs a select(2) system call with the same
      parameters.
- sprintf 
      FORMAT, 
      LIST
- Returns a string formatted by (almost all of) the usual
      printf(3) conventions.
- sysread 
      FILEHANDLE, $VAR, 
      LENGTH [ , 
      OFFSET ]
- Reads LENGTH bytes into 
      $VAR at 
      OFFSET.
- syswrite 
      FILEHANDLE, 
      SCALAR, LENGTH
      [ , OFFSET ]
- Writes LENGTH bytes from SCALAR at 
      OFFSET.
- tell [ FILEHANDLE ]
- Returns the current file position for the file. If FILENAME is omitted, assumes the file last
      read.
- write [ FILEHANDLE ]
- Writes a formatted record to the specified file, using
      the format associated with that file.
Formats
    
      - formline 
      PICTURE, 
      LIST
- Formats LIST according to PICTURE and accumulates the result into 
      $^A.
- write [ FILEHANDLE ]
- Writes a formatted record to the specified file, using
      the format associated with that file.
Formats are defined as follows:
    
      format [NAME] 
      =
      FORMLIST
      .
    
    FORMLIST pictures the lines, and
    contains the arguments which will give values to the fields in
    the lines. NAME defaults to 
    STDOUT if omitted.
    Picture fields are:
    
      
        
          | @<<<... | left adjusted field, repeat the <
          to denote the desired width | 
        
          | @>>>... | right adjusted field | 
        
          | @|||... | centered field | 
        
          | @#.##... | numeric format with implied decimal point | 
        
          | @* | a multi-line field | 
      
    
    Use ^ instead of @ for
    multiline block filling.
    Use ~ at the beginning of a line to suppress
    unwanted empty lines.
    Use ~~ at the beginning of a line to have this
    format line repeated until all fields are exhausted.
    Use $- to zero to force a page break on the
    next write.
    See also $^, $~, 
    $^A, $^F, $- and 
    $= in section Special
    Variables. 
    
     
    Directory Reading Routines
    
      - closedir DIRHANDLE
- Closes a directory opened by opendir.
- opendir 
      DIRHANDLE, 
      DIRNAME
- Opens a directory on the handle specified.
- readdir DIRHANDLE
- Returns the next entry (or an array of entries) from the
      directory.
- rewinddir DIRHANDLE
- Positions the directory to the beginning.
- seekdir 
      DIRHANDLE, 
      POS
- Sets position for readdir on the directory.
- telldir DIRHANDLE
- Returns the position in the directory.
System Interaction
    
      - alarm EXPR
- Schedules a SIGALRM to be delivered after
      EXPR seconds.
- chdir [ EXPR ]
- Changes the working directory. Uses 
      $ENV{"HOME"} or $ENV{"LOGNAME"} if
      EXPR is omitted.
- chroot FILENAME
- Changes the root directory for the process and its
      children.
- die [ LIST ]
- Prints the value of LIST to 
      STDERR and exits with the current value of 
      $! (errno). If $! is 0, exits
      with the value of ($? >> 8). If 
      ($? >> 8) is 0, exits with 255. LIST defaults to "Died".
- exec LIST
- Executes the system command in 
      LIST; does not return.
- exit [ EXPR ]
- Exits immediately with the value of 
      EXPR, which defaults to 0 (zero).
      Calls END routines and object destructors
      before exiting.
- fork
- Does a fork(2) system call. Returns the process ID
      of the child to the parent process and zero to the child
      process.
- getlogin
- Returns the current login name as known by the
      system.
- getpgrp [ PID ]
- Returns the process group for process 
      PID (0, or omitted, means the current process).
- getppid
- Returns the process ID of the parent process.
- getpriority 
      WHICH, WHO
- Returns the current priority for a process, process
      group, or user.
- glob PAT
- Returns a list of filenames that match the shell pattern
      PAT.
- kill LIST
- Sends a signal to a list of processes. The first element
      of the list must be the signal to send (either numeric, or
      its name as a string).
- setpgrp 
      PID, PGRP
- Sets the process group for the PID
      (0 means the current process).
- setpriority 
      WHICH, 
      WHO, 
      PRIORITY
- Sets the current priority for a process, process group,
      or a user.
- sleep [ EXPR ]
- Causes the program to sleep for 
      EXPR seconds, or forever if no 
      EXPR. Returns the number of seconds actually
      slept.
- syscall LIST
- Calls the system call specified in the first element of
      the list, passing the rest of the list as arguments to the
      call.
- system LIST
- Does exactly the same thing as exec LIST except that a fork is performed first, and
      the parent process waits for the child process to
      complete.
- times
- Returns a 4-element array (0: $user,
      1: $system, 2: 
      $cuser, 3: $csystem) giving the
      user and system times, in seconds, for this process and the
      children of this process.
- umask [ EXPR ]
- Sets the umask for the process and returns the old one.
      If EXPR is omitted, returns current
      umask value.
- wait
- Waits for a child process to terminate and returns the
      process ID of the deceased process (-1 if none). The status
      is returned in $?.
- waitpid 
      PID, FLAGS
- Performs the same function as the corresponding system
      call.
- warn [ LIST ]
- Prints the message on STDERR like 
      die, but doesn't exit. LIST
      defaults to "Warning: something's
      wrong".
Networking
    
      - accept 
      NEWSOCKET, 
      GENERICSOCKET
- Accepts a new socket.
- bind 
      SOCKET, 
      NAME
- Binds the NAME to the SOCKET.
- connect 
      SOCKET, 
      NAME
- Connects the NAME to the SOCKET.
- getpeername SOCKET
- Returns the socket address of the other end of the SOCKET.
- getsockname SOCKET
- Returns the name of the 
      SOCKET.
- getsockopt 
      SOCKET, 
      LEVEL, 
      OPTNAME
- Returns the socket options.
- listen 
      SOCKET, 
      QUEUESIZE
- Starts listening on the specified 
      SOCKET.
- recv 
      SOCKET, 
      SCALAR, 
      LENGTH, 
      FLAGS
- Receives a message on SOCKET.
- send 
      SOCKET, 
      MSG, FLAGS [
      , TO ]
- Sends a message on the 
      SOCKET.
- setsockopt 
      SOCKET, 
      LEVEL, 
      OPTNAME, 
      OPTVAL
- Sets the requested socket option.
- shutdown 
      SOCKET, 
      HOW
- Shuts down a SOCKET.
- socket 
      SOCKET, 
      DOMAIN, 
      TYPE, 
      PROTOCOL
- Creates a SOCKET in DOMAIN with TYPE and PROTOCOL.
- socketpair 
      SOCKET1, 
      SOCKET2, 
      DOMAIN, 
      TYPE, 
      PROTOCOL
- Works the same as socket, but creates a pair of
      bidirectional sockets.
System V IPC
    You need to require "sys/ipc.ph" before you
    can use the symbolic names of the operations.
    
      - msgctl ID,
      CMD, 
      ARGS
- Calls msgctl(2). If CMD is
      &IPC_STAT then 
      ARGS must be a variable.
- msgget KEY,
      FLAGS
- Creates a message queue for KEY.
      Returns the message queue identifier.
- msgsnd ID,
      MSG, 
      FLAGS
- Sends MSG to queue ID.
- msgrcv ID,
      $VAR,
      SIZE, 
      TYPE, 
      FLAGS
- Receives a message from queue ID
      into VAR.
- semctl ID,
      SEMNUM, CMD, 
      ARG
- Calls semctl(2). If CMD is
      &IPC_STAT of &GETALL
      then ARG must be a variable.
- semget KEY,
      NSEMS, SIZE, 
      FLAGS
- Creates a set of semaphores for 
      KEY. Returns the message semaphore identifier.
- semop KEY,
      ...
- Performs semaphore operations.
- shmctl ID,
      CMD, 
      ARG
- Calls shmctl(2). If CMD is
      &IPC_STAT then ARG
      must be a variable.
- shmget KEY,
      SIZE, 
      FLAGS
- Creates shared memory. Returns the shared memory segment
      identifier.
- shmread ID,
      $VAR,
      POS, 
      SIZE
- Reads at most SIZE bytes of the
      contents of shared memory segment ID
      starting at offset POS into VAR.
- shmwrite 
      ID, 
      STRING, 
      POS, SIZE
- Writes at most SIZE bytes of STRING into the contents of shared memory
      segment ID at offset 
      POS.
Miscellaneous
    
      - defined EXPR
- Tests whether the lvalue EXPR has
      an actual value.
- do FILENAME
- Executes FILENAME as a Perl
      script. See also require in the section Subroutines, Packages and Modules.
- dump [ LABEL ]
- Immediate core dump. When reincarnated, starts at LABEL.
- eval { EXPR
      ; ... }
- Executes the code between { and 
      }. Traps runtime errors as described with 
      eval(EXPR), in the section String Functions.
- local VARIABLE
- local ( 
      LIST )
- Creates a scope for the listed variables local to the
      enclosing block, subroutine or eval.
- my VARIABLE
- my ( LIST
      )
- Creates a scope for the listed variables lexically local
      to the enclosing block, subroutine or eval.
- ref EXPR
- Returns a true value if 
      EXPR is a reference. Returns the package name if EXPR has been blessed into a package.
- reset [ EXPR ]
- Resets ?? searches so that they work
      again. EXPR is a list of single
      letters. All variables and arrays beginning with one of those
      letters are reset to their pristine state. Only affects the
      current package.
- scalar EXPR
- Forces evaluation of EXPR in
      scalar context.
- undef [ LVALUE ]
- Undefines the LVALUE. Always
      returns the undefined value.
- wantarray
- Returns true if the current context expects an
      array value.
Information from System Files
    
      
        |  | 
      
        | Returns ($name, 
        $passwd, $uid, 
        $gid, $quota, 
        $comment, $gcos, 
        $dir, 
        $shell). | 
      
        | endpwent | Ends lookup processing. | 
      
        | getpwent | Gets next user information. | 
      
        | getpwnam NAME | Gets information by name. | 
      
        | getpwuid UID | Gets information by user ID. | 
      
        | setpwent | Resets lookup processing. | 
      
        |  | 
      
        |  | 
      
        | Returns ($name, 
        $passwd, $gid, 
        $members). | 
      
        | endgrent | Ends lookup processing. | 
      
        | getgrgid GID | Gets information by group ID. | 
      
        | getgrnam NAME | Gets information by name. | 
      
        | getgrent | Gets next information. | 
      
        | setgrent | Resets lookup processing. | 
      
        |  | 
      
        |  | 
      
        | Returns ($name, 
        $aliases, $addrtype, 
        $length, 
        @addrs). | 
      
        | endhostent | Ends lookup processing. | 
      
        | gethostbyaddr 
        ADDR, 
        ADDRTYPE | Gets information by IP address. | 
      
        | gethostbyname NAME | Gets information by hostname. | 
      
        | gethostent | Gets next host information. | 
      
        | sethostent STAYOPEN | Resets lookup processing. | 
      
        |  | 
      
        |  | 
      
        | Returns ($name, 
        $aliases, $addrtype, 
        $net). | 
      
        | endnetent | Ends lookup processing. | 
      
        | getnetbyaddr 
        ADDR, 
        TYPE | Gets information by address and type. | 
      
        | getnetbyname NAME | Gets information by network name. | 
      
        | getnetent | Gets next network information. | 
      
        | setnetent STAYOPEN | Resets lookup processing. | 
      
        |  | 
      
        |  | 
      
        | Returns ($name, 
        $aliases, $port, 
        $proto). | 
      
        | endservent | Ends lookup processing. | 
      
        | getservbyname 
        NAME, 
        PROTO | Gets information by service name. | 
      
        | getservbyport 
        PORT, 
        PROTO | Gets information by service port. | 
      
        | getservent | Gets next service information. | 
      
        | setservent STAYOPEN | Resets lookup processing. | 
      
        |  | 
      
        |  | 
      
        | Returns ($name, 
        $aliases, 
        $proto). | 
      
        | endprotoent | Ends lookup processing. | 
      
        | getprotobyname NAME | Gets information by protocol name. | 
      
        | getprotobynumber 
        NUMBER | Gets information by protocol number. | 
      
        | getprotoent | Gets next protocol information. | 
      
        | setprotoent STAYOPEN | Resets lookup processing. | 
    
    
     
    Special Variables
    
      
        | The following variables are
        global and should be localized in subroutines: | 
      
        | $_ | The default input and pattern-searching
        space. | 
      
        | $. | The current input line number of the last
        filehandle that was read. | 
      
        | $/ | The input record separator, newline by
        default. May be multicharacter. | 
      
        | $, | The output field separator for the print
        operator. | 
      
        | $" | The separator that joins elements of
        arrays interpolated in strings. | 
      
        | $\ | The output record separator for the print
        operator. | 
      
        | $# | The output format for printed numbers.
        Deprecated. | 
      
        | $* | Set to 1 to do multiline matching within
        strings. Deprecated, see the m and s
        modifiers in section Search and Replace
        Functions. | 
      
        | $? | The status returned by the last 
        `...` command, pipe close
        or system operator. | 
      
        | $] | The perl version number, e.g., 
        5.001. | 
      
        | $[ | The index of the first element in an
        array, and of the first character in a substring. Default
        is 0. Deprecated. | 
      
        | $; | The subscript separator for
        multidimensional array emulation. Default is
        "\034". | 
      
        | $! | If used in a numeric context, yields the
        current value of errno. If used in a string context,
        yields the corresponding error string. | 
      
        | $@ | The Perl error message from the last 
        eval or do EXPR
        command. | 
      
        | $: | The set of characters after which a string
        may be broken to fill continuation fields (starting with
        ^) in a format. | 
      
        | $0 | The name of the file containing the Perl
        script being executed. May be assigned to. | 
      
        | $$ | The process ID of the currently executing
        Perl program. Altered (in the child process) by 
        fork. | 
      
        | $< | The real user ID of this process. | 
      
        | $> | The effective user ID of this
        process. | 
      
        | $( | The real group ID of this process. | 
      
        | $) | The effective group ID of this
        process. | 
      
        | $^A | The accumulator for formline and
        write operations. | 
      
        | $^D | The debug flags as passed to perl using
        -D. | 
      
        | $^F | The highest system file descriptor,
        ordinarily 2. | 
      
        | $^I | In-place edit extension as passed to Perl
        using -i. | 
      
        | $^L | Formfeed character used in formats. | 
      
        | $^P | Internal debugging flag. | 
      
        | $^T | The time (as delivered by time)
        when the program started. This value is used by the file
        test operators -M, -A and
        -C. | 
      
        | $^W | The value of the -w option
        as passed to Perl. | 
      
        | $^X | The name by which the currently executing
        program was invoked. | 
      
        |  | 
      
        | The following variables are
        context dependent and need not be localized: | 
      
        | $% | The current page number of the currently
        selected output channel. | 
      
        | $= | The page length of the current output
        channel. Default is 60 lines. | 
      
        | $- | The number of lines remaining on the
        page. | 
      
        | $~ | The name of the current report
        format. | 
      
        | $^ | The name of the current top-of-page
        format. | 
      
        | $| | If set to nonzero, forces a flush after
        every write or print on the currently selected output
        channel. Default is 0. | 
      
        | $ARGV | The name of the current file when reading
        from <>. | 
      
        |  | 
      
        | The following variables are
        always local to the current block: | 
      
        | $& | The string matched by the last successful
        pattern match. | 
      
        | $` | The string preceding what was matched by
        the last successful match. | 
      
        | $' | The string following what was matched by
        the last successful match. | 
      
        | $+ | The last bracket matched by the last
        search pattern. | 
      
        | $1...$9... | Contain the subpatterns from the
        corresponding sets of parentheses in the last pattern
        successfully matched. $10... and up are
        only available if the match contained that many
        subpatterns. | 
    
    
     
    Special Arrays
    
      
        | @ARGV | Contains the command-line arguments for
        the script (not including the command name). | 
      
        | @EXPORT | Names the methods a package exports by
        default. | 
      
        | @EXPORT_OK | Names the methods a package can export
        upon explicit request. | 
      
        | @INC | Contains the list of places to look for
        Perl scripts to be evaluated by the do FILENAME and require commands. | 
      
        | @ISA | List of base classes of a package. | 
      
        | @_ | Parameter array for subroutines. Also used
        by split if not in array context. | 
      
        | %ENV | Contains the current environment. | 
      
        | %INC | List of files that have been included with
        require or do. | 
      
        | %OVERLOAD | Can be used to overload operators in a
        package. | 
      
        | %SIG | Used to set signal handlers for various
        signals. | 
    
    
     
    Environment Variables
    Perl uses the following environment variables.
    
      
        | HOME | Used if chdir has no argument. | 
      
        | LOGDIR | Used if chdir has no argument and
        HOME is not set. | 
      
        | PATH | Used in executing subprocesses, and in
        finding the Perl script if -S is used. | 
      
        | PERL5LIB | A colon-separated list of directories to
        look in for Perl library files before looking in the
        standard library and the current directory. | 
      
        | PERL5DB | The command to get the debugger code. Defaults to BEGIN { require 'perl5db.pl'
        }.
 | 
      
        | PERLLIB | Used instead of PERL5LIB
        if the latter is not defined. | 
    
    
     
    The Perl Debugger
    The Perl symbolic debugger is invoked with perl
    -d. 
    
      
        | h | Prints out a help message. | 
      
        | T | Prints a stack trace. | 
      
        | s | Single steps. | 
      
        | n | Single steps around subroutine call. | 
      
        | RETURN key | Repeats last s or 
        n. | 
      
        | r | Returns from the current subroutine. | 
      
        | c [ 
        LINE ] | Continues (until 
        LINE, or another breakpoint, or exit). | 
      
        | p 
        EXPR | Prints EXPR. | 
      
        | l [ 
        RANGE ] | Lists a range of lines. 
        RANGE may be a number, start-end, start+amount, or a
        subroutine name. If RANGE is
        omitted, lists next window. | 
      
        | w | Lists window around current line. | 
      
        | - | Lists previous window. | 
      
        | f 
        FILE | Switches to FILE
        and starts listing it. | 
      
        | l 
        SUB | Lists the named subroutine. | 
      
        | S | List the names of all subroutines. | 
      
        | /PATTERN/ | Searches forward for 
        PATTERN. | 
      
        | ?PATTERN? | Searches backward for 
        PATTERN. | 
      
        | b [ LINE [ CONDITION ]
        ] | Sets breakpoint at 
        LINE; default is the current line. | 
      
        | b 
        SUB [ CONDITION ] | Sets breakpoint at the subroutine. | 
      
        | d [ 
        LINE ] | Deletes breakpoint at the given line. | 
      
        | D | Deletes all breakpoints. | 
      
        | L | Lists lines that have breakpoints or
        actions. | 
      
        | a LINE
        COMMAND | Sets an action for line. | 
      
        | A | Deletes all line actions. | 
      
        | < 
        COMMAND | Sets an action to be executed before every
        debugger prompt. | 
      
        | > 
        COMMAND | Sets an action to be executed before every
        s, c or n
        command. | 
      
        | V [ PACKAGE [ VARS ]
        ] | Lists all variables in a package. Default
        package is main. | 
      
        | X [ 
        VARS ] | Like V, but assumes
        current package. | 
      
        | ! [
        [-]NUMBER ] | Re-executes a command. Default is the
        previous command. | 
      
        | H [ -NUMBER ] | Displays the last -NUMBER commands of more than one
        letter. | 
      
        | t | Toggles trace mode. | 
      
        | = [ ALIAS
        VALUE ] | Sets alias, or lists current aliases. | 
      
        | q | Quits. You may also use your EOF key character. | 
      
        | COMMAND | Executes COMMAND as
        a Perl statement. | 
    
    
    
    
    
    
     
    Text copyright © 1996 Johan Vromans
    HTML copyright © 1996-2001 Rex Swain
    Email rex(at)rexswain.com,
    Web 
    http://www.rexswain.com
    Permission granted to distribute unmodified copies
    Reports of errors or omissions appreciated