[comp.lang.perl] REPOST: texinfo version of perl refguide

jv@mh.nl (Johan Vromans) (06/27/90)

Archive-name: perlref.texinfo/part01

---- Cut Here and unpack ----
#!/bin/sh
# This is perlref.texinfo, a shell archive (shar 3.24)
# made 06/26/1990 19:44 UTC by jv@squirrel
# Source directory /u/jv/perlref/texinfo
#
# existing files WILL be overwritten
#
# This is part 1 of a multipart archive                                    
# do not concatenate these parts, unpack them in order with /bin/sh        
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#  43795 -rw-r--r-- perlref.texinfo
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
if test -r shar3_seq_.tmp; then
	echo "Must unpack archives in sequence!"
	next=`cat shar3_seq_.tmp`; echo "Please unpack part $next next"
	exit 1
fi
# ============= perlref.texinfo ==============
echo "x - extracting perlref.texinfo (Text)"
sed 's/^X//' << 'SHAR_EOF' > perlref.texinfo &&
X\input texinfo   @c -*-texinfo-*-
X@setfilename perlref.info
X@settitle perlref
X
X@ifinfo
XThis file documents perl, a practical extension and report language.
XGNU texinfo version 3.0.18.1.1 adapted by rich@@rice.edu.
X
XCopyright @copyright{} 1989, 1990 Johan Vromans
X@TeX{} version Copyright @copyright{} 1990 Raymond Chen
XRev. 3.0.18.1
XUse and reproduction of this information is unlimited.
X@end ifinfo
X
X@titlepage
X@sp 10
X@center @titlefont{Perl Reference Guide}
X@sp 1
X@center for perl version 3.0
X@sp 2
X@center Perl program designed and created by Larry Wall (lwall@@jpl-devvax.jpl.nasa.gov)
X@sp .5
X@center Reference guide designed and created by Johan Vromans (jv@@mh.nl)
X@sp .5
X@center @TeX{} version by Raymond Chen (raymond@@math.berkeley.edu)
X@vskip 0pt plus 1filll
XCopyright @copyright{} 1989, 1990 Johan Vromans
X@sp .1
X@TeX{} version Copyright @copyright{} 1990 Raymond Chen
X@sp .1
XRev. 3.0.18.1
X@sp .1
XUse and reproduction of this information is unlimited.
X@end titlepage
X
X
X@node Top, Command line options, (dir), (dir)
X
X@menu
X* Command line options::
X* Literals::
X* Variables::
X* Statements::
X* Flow control::
X* Operators::
X* File test operators::
X* Arithmetic functions::
X* Conversion functions::
X* Structure conversion::
X* String functions::
X* Array and list functions::
X* File operations::
X* Directory reading routines::
X* Input/Output::
X* Search and replace functions::
X* System interaction::
X* Networking::
X* Miscellaneous::
X* Info from system files::
X* Regular expressions::
X* Formats::
X* Special variables::
X* Special arrays::
X* The perl debugger::
X* Index::
X@end menu
X
X@node Command line options, Literals, , Top
X@chapter Command line options
X
X@table @samp
X@item -a
Xturns on autosplit mode when used with @samp{-n} or @samp{-p}.  Splits
Xto @samp{@@F}.@refill
X
X@samp{-d}
Xruns the script under the debugger. Use @samp{-de 0} to start the
Xdebugger without a script.@refill
X
X@item -D@var{number}
Xsets debugging flags.
X
X@item -e @var{commandline}
Xmay be used to enter one line of script. Multiple @samp{-e} commands may
Xbe given to build up a multi-line script.@refill
X
X@item -i@var{extension}
Xspecifies that files processed by the @code{<>} construct are to be
Xedited in-place.@refill
X
X@item -I@var{directory}
Xwith @samp{-P}:  tells the C preprocessor where to look
Xfor include files.@refill
X
X@item -n
Xassumes an input loop around your script. Lines are not printed.
X
X@item -p
Xassumes an input loop around your script. Lines are printed.
X
X@item -P
Xruns the C preprocessor on the script before compilation by perl.
X
X@item -s
Xinterprets @samp{-xxx} on the command line as switches and sets the
Xcorresponding variables @var{$xxx} in the script.@refill
X
X@item -S
Xuses the @var{PATH} environment variable to search for the script.
X
X@item -u
Xdumps core after compiling the script.
X
X@item -U
Xallows perl to do unsafe operations.
X
X@item -v
Xprints the version and patchlevel of your perl executable.
X
X@item -w
Xprints warnings about possible spelling errors and other error-prone
Xconstructs in the script.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node Literals, Variables, Command line options, Top
X@chapter Literals
X
X@table @asis
X@item Numeric:
X@code{123},  @code{123.4},  @code{5E-10},  @code{0xff} (hex),
X@code{0377} (octal).@refill
X
X@item String:
X@code{"abc"}, @code{'abc'}.  Variables are interpolated when
X@code{"@dots{}"} are used.  @code{q/@dots{}/} can be used instead
Xof @code{'@dots{}'}, @code{qq/@dots{}/} instead of @code{"@dots{}"},
X(any delimiter instead of @code{/@dots{}/}).@refill
X
X@item Array:
X@code{(1,2,3)}. @code{()} is empty array. Also: @code{($a,$b,@@rest) =
X(1,2,@dots{});} Enums are fine: @code{(1..4)} is @code{(1,2,3,4)}.
XLikewise @code{('abc'..'ade')}.@refill
X
X@item Filehandles:
X@code{<STDIN>}, @code{<STDOUT>}, @code{<STDERR>}, @code{<handle>},
X@code{<$var>}. @code{<>} is the input stream formed by the files
Xspecified in @code{@@ARGV}, or @code{STDIN} if no arguments are
Xsupplied.@refill
X
X@item Globs:
X@code{<pattern>} evaluates to all filenames according to the pattern.
XUse @code{<${var}>} to glob from a variable.@refill
X
X@item Commands:
X@code{`command`} evaluates to the output of the command.
X
X@c
X@c                 Is Here-Is correct? Is it clear? Rich
X@c
X@item Here-Is:
XThe identifier must follow @code{<<} immediately.
X@example
X@code{<<identifier}.
X@var{input text}
Xidentifier
X@end example
X@end table
X
X@c----------------------------------------------------------------
X@node Variables, Statements, Literals, Top
X@chapter Variables
X
X@table @code
X@item $var
Xa simple scalar variable
X
X@item $var[28]
X29th element of array @code{@@var} (the @code{[]} are part of it)
X
X@item $var{'Feb'}
Xone value from associative array @code{%var}
X
X@item $#var
Xlast index of array @code{@@var}
X
X@item @@var
Xthe entire array
X
X@item @@var[3,4,5]
Xa slice of the array @code{@@var}
X
X@item @@var{'a','b'}
Xa slice of @code{%var}; same as @code{('a','b')}
X
X@item %var
Xthe entire associative array
X
X@item $var{'a',1,@dots{}}
Xemulates a multi-dimensional array
X
X@item ('a',1,@dots{})[4]
Xsubscripts an array literal
X
X@item *name
Xrefers to all objects represented by name.  @code{*name1 = *name2} makes
X@code{name1} identical to @code{name2}.
X@end table
X
X@c----------------------------------------------------------------
X@node Statements, Flow control, Variables, Top
X@chapter Statements
X
XEvery statement is an expression, optionally followed by a modifier, and
Xterminated by a semi-colon.
X
XExecution of expressions can depend on other expressions using one of
Xthe modifiers @code{if}, @code{unless}, @code{while} or @code{until}, e.g.:
X@example
X@var{EXPR1} if @var{EXPR2};
X@var{EXPR1} until @var{EXPR2};
X@end example
X
XAlso, by using one of the logical operators @code{||}, @code{&&}
Xor @code{?:}, e.g.:
X@example
X@var{EXPR1} || @var{EXPR2};
X@var{EXPR1} ? @var{EXPR2} : @var{EXPR3};
X@end example
X
XStatements can be combined to form a @var{BLOCK} when enclosed in @code{@{@}}.
X
XCompound statements may be used to control flow (@code{[]} denote optional
Xparts, @code{*} means: defaults to @code{$_} if omitted):@refill
X
X@example
Xif (@var{EXPR}) @var{BLOCK} [ [ elsif (@var{EXPR}) @var{BLOCK} @dots{} ] else @var{BLOCK} ]
Xunless (@var{EXPR}) @var{BLOCK} [ else @var{BLOCK} ]
X[@var{LABEL}:] while (@var{EXPR}) @var{BLOCK} [ continue @var{BLOCK} ]
X[@var{LABEL}:] until (@var{EXPR}) @var{BLOCK} [ continue @var{BLOCK} ]
X[@var{LABEL}:] for (@var{EXPR}; @var{EXPR}; @var{EXPR}) @var{BLOCK}
X[@var{LABEL}:] foreach @var{VAR}* (@var{ARRAY}) @var{BLOCK}
X[@var{LABEL}:] @var{BLOCK} [ continue @var{BLOCK} ]
X@end example
X
XSpecial forms are:
X@example
Xdo @var{BLOCK} while @var{EXPR};
Xdo @var{BLOCK} until @var{EXPR};
X@end example
Xwhich are guaranteed to perform @var{BLOCK} once before testing @var{EXPR}.
X
X@c----------------------------------------------------------------
X@node Flow control, Operators, Statements, Top
X@chapter Flow control
X
X@table @code
X
X@item do @var{BLOCK}
XReturns the value of the last command in the sequence of
Xcommands indicated by @var{BLOCK}.
X
X@item do @var{SUBROUTINE} (@var{LIST})
XExecutes a @var{SUBROUTINE} declared by a @code{sub} declaration, and
Xreturns the value of the last expression evaluated in
X@var{SUBROUTINE}. Also: @code{&@var{SUBROUTINE}}.@refill
X
X@item do @var{EXPR}
XUses the value of @var{EXPR} as a filename and executes the contents of
Xthe file as a perl script. Errors are returned in @code{$@@}.@refill
X
X@item goto @var{LABEL}
XContinue execution at the specified label.
X
X@item last [@var{LABEL}]
XImmediately exits the loop in question. Skips continue block.
X
X@item next [@var{LABEL}]
XStarts the next iteration of the loop.
X
Xredo [@var{LABEL}]
X@item Restarts the loop block without evaluating the conditional again.
X
X@item return @var{EXPR}
XReturns from a subroutine with the value specified.
X@end table
X
X@c----------------------------------------------------------------
X@node Operators, File test operators, Flow control, Top
X@chapter Operators
X
X@table @asis
X@item @code{+} @code{-} @code{*} @code{/}
XAddition, subtraction, multiplication, division.
X
X@item @code{%}
XModulo division.
X
X@item @code{|} @code{&} @code{^}
XBitwise or, bitwise and, bitwise exclusive or.
X
X@item @code{>>} @code{<<}
XBitwise shift right, bitwise shift left.
X
X@item @code{**}
XExponentiation.
X
X@item @code{.}
XConcatenation of two strings.
X
X@item @code{x}
XReturns a string consisting of the left operand repeated the
Xnumber of times specified by the right operand.@refill
X@end table
X
XAll of the above operators also have an assignment operator, e.g. @code{.=}.
X
X@table @code
X@item @code{++} @code{--}
XAuto-increment (magical on strings), auto-decrement.
X
X@item @code{?:}
XAlternation (if-then-else) operator.
X
X@item @code{||} @code{&&}
XLogical or, logical and.
X
X@item @code{==} @code{!=}
XNumeric equality, inequality.
X
X@item @code{eq} @code{ne}
XString equality, inequality.
X
X@item @code{<} @code{>}
XNumeric less than, greater than.
X
X@item @code{lt} @code{gt}
XString less than, greater than.
X
X@item @code{<=} @code{>=}
XNumeric less (greater) than or equal to.
X
X@item @code{le} @code{ge}
XString less (greater) than or equal.
X
X@item @code{=~} @code{!~}
XSearch pattern, substitution, or translation (negated).
X
X@item @code{..}
XEnumeration, also input line range operator.
X
X@item @code{,}
XComma operator.
X@end table
X
X@c----------------------------------------------------------------
X@node File test operators, Arithmetic functions, Operators, Top
X@chapter File test operators
X
X@c %%rjc%% Changed "This unary operator" to "These unary operators"
X@c %%rjc%%  and concomitant grammar changes
X
XThese unary operators take one argument, either a filename or a
Xfilehandle, and test the associated file to see if something is true
Xabout it. If the argument is omitted, tests @code{$_} (except for
X@code{-t}, which tests @var{STDIN}).  If the special argument @code{_}
X(underscore) is passed, uses the info of the preceding test.@refill
X
X@table @asis
X@code{-r}/@code{-w}/@code{-x}/@code{-o}
XFile is readable/writable/executable/owned by effective uid.
X
X@item @code{-R}/@code{-W}/@code{-X}/@code{-O}
XFile is readable/writable/executable/owned by real uid.
X
X@item @code{-e}/@code{-z}/@code{-s}
XFile exists / has zero/non-zero size.
X
X@item @code{-f}/@code{-d}
XFile is a plain file, a directory.
X
X@item @code{-l}/@code{-S}/@code{-p}
XFile is a symbolic link, a socket,  a named pipe (FIFO).
X
X@item @code{-b}/@code{-c}
XFile is a block/character special file.
X
X@item @code{-u}/@code{-g}/@code{-k}
XFile has setuid/setgid/sticky bit set.
X
X@item @code{-t}
XTests if filehandle (STDIN by default) is opened to a tty.
X
X@item @code{-T}/@code{-B}
XFile is a text/non-text (binary) file.  Both @code{-T} and @code{-B}
Xreturn @var{TRUE} on a null file, or a file at EOF when testing a
Xfilehandle.@refill
X@end table
X
XAn @code{*} after the parameter list indicates that this function may be
Xused either as a function or as a unary operator, without the
Xparentheses.  The symbol @code{*} after a parameter indicates that this
Xparameter will default to @code{$_} if omitted.@refill
X
X@c----------------------------------------------------------------
X@node Arithmetic functions, Conversion functions, File test operators, Top
X@chapter Arithmetic functions
X
X@table @code
X
X@item atan2(@var{X},@var{Y})
XReturns the arctangent of @var{X/Y} in the range -Pi to Pi.
X
X@item cos(@var{EXPR}*)*
XReturns the cosine of @var{EXPR} (expressed in radians).
X
X@item exp(@var{EXPR}*)*
XReturns e to the power of @var{EXPR}.
X
X@item int(@var{EXPR}*)*
XReturns the integer portion of @var{EXPR}.
X
X@item log(@var{EXPR}*)*
XReturns natural logarithm (base @var{e}) of @var{EXPR}.
X
X@item rand [(@var{EXPR})*]
XReturns a random fractional number between 0 and the value of
X@var{EXPR}. If @var{EXPR} is omitted, returns a value between 0 and
X1.@refill
X
X@item sin(@var{EXPR}*)*
XReturns the sine of @var{EXPR} (expressed in radians).
X
X@item sqrt(@var{EXPR}*)*
XReturn the square root of @var{EXPR}.
X
X@item srand[(@var{EXPR})*]
XSets the random number seed for the rand operator.
X
X@item time
XReturns the number of seconds since January 1, 1970. Suitable for
Xfeeding to gmtime(@dots{}) and localtime(@dots{}).@refill
X@end table
X
X@c----------------------------------------------------------------
X@node Conversion functions, Structure conversion, Arithmetic functions, Top
X@chapter Conversion functions
X
X@table @code
X
X@item gmtime(@var{EXPR})*
XConverts a time as returned by the time function to a 9-element
Xarray @code{($sec, $min, $hour, $mday, $mon, $year, $wday, $yday,
X$isdst)} with the time analyzed for the Greenwich timezone. @code{$mon}
Xhas the range 0@dots{}11 and @code{$wday} has the range
X0@dots{}6.@refill
X
X@c %%rjc%% \* added
X@item hex(@var{EXPR}*)*
XReturns the decimal value of @var{EXPR} interpreted as an hex string.
X
X@item localtime(@var{EXPR})*
XConverts a time as returned by the time function to a 9-element
Xarray with the time analyzed for the local timezone.@refill
X
X@c %%rjc%% \* added
X@item oct(@var{EXPR}*)*
XReturns the decimal value of @var{EXPR} interpreted as an octal string.
XIf @var{EXPR} starts off with 0x, interprets it as a hex string
Xinstead.@refill
X
X@item ord(@var{EXPR}*)*
XReturns the ascii value of the first character of @var{EXPR}.
X
X@item vec(@var{EXPR},@var{OFFSET},@var{BITS})
XTreats @var{EXPR} as a string of unsigned ints, and yields the bit at
X@var{OFFSET}. @var{BITS} must be between 1 and 32. May be used as an
Xlvalue.@refill
X@end table
X
XA @var{LIST} is a (possibly parenthesised) list of expressions,
Xvariables or @var{LIST}s. In all circumstances, an array variable or an
Xarray slice may be used instead of a @var{LIST}.@refill
X
X@c----------------------------------------------------------------
X@node Structure conversion, String functions, Conversion functions, Top
X@chapter Structure conversion
X
X@table @code
X
X@item pack(@var{TEMPLATE},@var{LIST})
XPacks the values into a binary structure using @var{TEMPLATE}.
X
X@item unpack(@var{TEMPLATE},@var{EXPR})
XUnpacks the structure @var{EXPR} into an array, using @var{TEMPLATE}.
X
X@var{TEMPLATE} is a sequence of characters as follows:
X
X@table @asis
X@item @code{a}/@code{A}
XAscii string, null/space padded
X
X@item @code{c}/@code{C}
XNative/unsigned char value
X
X@item @code{s}/@code{S}
XSigned/unsigned short value
X
X@item @code{i}/@code{I}
XSigned/unsigned integer value
X
X@item @code{l}/@code{L}
XSigned/unsigned long value
X
X@item @code{n}/@code{N}
XShort/long in network byte order
X
X@item @code{p}
XPointer to a string
X
X@item @code{x}
XNull byte
X@end table
X@end table
X
XEach character may be followed by a decimal number which will be used as
Xa repeat count. Spaces may be included in the template for readability
Xpurposes.@refill
X
X@c----------------------------------------------------------------
X@node String functions, Array and list functions, Structure conversion, Top
X@chapter String functions
X
X@table @code
X
X@item chop(@var{LIST}*)
XChops off the last character on all elements of the list; returns the
Xlast chopped character. The parentheses may be omitted if @var{LIST} is
Xa single variable.@refill
X
X@item crypt(@var{PLAINTEXT},@var{SALT})
XEncrypts a string.
X
X@c %%rjc%%\* added
X@item eval(@var{EXPR}*)*
X@var{EXPR} is parsed and executed as if it were a little perl program.
XThe value returned is the value of the last expression evaluated. If
Xthere is a syntax error or runtime error, an undefined string is
Xreturned by eval, and @code{$@@} is set to the error message.@refill
X
X@item index(@var{STR},@var{SUBSTR})
XReturns the position of @var{SUBSTR} in @var{STR}. If the substring is not
Xfound, returns @code{$[-1}.@refill
X
X@c %%rjc%% \* added
X@item length(@var{EXPR}*)*
XReturns the length in characters of the value of @var{EXPR}.
X
X@item rindex(@var{STR},@var{SUBSTR})
XReturns the position of the last occurrence of @var{SUBSTR} in @var{STR}.
X
X@item substr(@var{EXPR},@var{OFFSET},@var{LEN})
XExtracts a substring out of @var{EXPR} and returns it. If @var{OFFSET} is
Xnegative, counts from the end of the string. May be used as an
Xlvalue.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node Array and list functions, File operations, String functions, Top
X@chapter Array and list functions
X
X@table @code
X
X@item delete @code{$}@var{ARRAY}$@{$@var{KEY}$@}$
XDeletes the specified value from the specified associative array.
XReturns the deleted value.@refill
X
X@item each(@code{%}@var{ARRAY})*
XReturns a 2-element array consisting of the key and value for the
Xnext value of an associative array. Entries are returned in an
Xapparently random order. When the array is entirely read, a null array
Xis returned. The next call to each(@dots{}) after that will start
Xiterating again.@refill
X
X@item grep(@var{EXPR},@var{LIST})
XEvaluates @var{EXPR} for each element of the @var{LIST}, locally setting
X@code{$_} to refer to the element. Modifying @code{$_} will modify the
Xcorresponding element from @var{LIST}. Returns array of elements from
X@var{LIST} for which @var{EXPR} returned true.@refill
X
X@item join(@var{EXPR},@var{LIST})
XJoins the separate strings of @var{LIST} into a single string with fields
Xseparated by the value of @var{EXPR}, and returns the string.@refill
X
X@item keys(@code{%}@var{ARRAY})*
XReturns a normal array consisting of all the keys of the named
Xassociative array.@refill
X
X@item pop(@code{@@}@var{ARRAY})*
XPops and returns the last value of the array, shortens the array by 1.
X
X@item push(@code{@@}@var{ARRAY},@var{LIST})
XPushes the values of @var{LIST} onto the end of @var{ARRAY}. The length of
SHAR_EOF
echo "End of perlref.texinfo part 1"
echo "File perlref.texinfo is continued in part 2"
echo "2" > shar3_seq_.tmp
exit 0
--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------

jv@mh.nl (Johan Vromans) (06/27/90)

Archive-name: perlref.texinfo/part02

---- Cut Here and unpack ----
#!/bin/sh
# this is xxx.02 (part 2 of perlref.texinfo)
# do not concatenate these parts, unpack them in order with /bin/sh
# file perlref.texinfo continued
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
if test ! -r shar3_seq_.tmp; then
	echo "Please unpack part 1 first!"
	exit 1
fi
(read Scheck
 if test "$Scheck" != 2; then
	echo "Please unpack part $Scheck next!"
	exit 1
 else
	exit 0
 fi
) < shar3_seq_.tmp || exit 1
echo "x - Continuing file perlref.texinfo"
sed 's/^X//' << 'SHAR_EOF' >> perlref.texinfo &&
X@var{ARRAY} increases by the length of @var{LIST}.@refill
X
X@item reverse(@var{LIST})*
XReturns the @var{LIST} in reverse order.
X
X@item shift[(@code{@@}@var{ARRAY})*]
XShifts the first value of the array off and returns it, shortening the
Xarray by 1 and moving everything down. If @code{@@}@var{ARRAY} is
Xomitted, shifts @code{@@ARGV} in main and @code{@@_} in
Xsubroutines.@refill
X
X@item sort([@var{SUBROUTINE}] @var{LIST})*
XSorts the @var{LIST} and returns the sorted array value. If
X@var{SUBROUTINE} is specified, gives the name of a subroutine that
Xreturns less than zero, zero, or greater than zero, depending on how the
Xelements of the array, available to the routine as @code{$a} and
X@code{$b}, are to be ordered.@refill
X
X@item splice(@code{@@}@var{ARRAY},@var{OFFSET}[,@var{LENGTH}[,@var{LIST}]])
XRemoves the elements of @code{@@}@var{ARRAY} designated by @var{OFFSET} and
X@var{LENGTH}, and replaces them with @var{LIST} (if specified).  Returns
Xthe elements removed.@refill
X
X@item split[(/@var{PATTERN}/[,@var{EXPR}*[,@var{LIMIT}]])]
XSplits a string into an array of strings, and returns it. If @var{LIMIT} is
Xspecified, splits in no more than that many fields. If @var{PATTERN} is
Xalso omitted, splits on whitespace (/[ \t\n]+/). If not in array
Xcontext: returns number of fields and splits to @code{@@_}.@refill
X
X@item unshift(@code{@@}@var{ARRAY},@var{LIST})
XPrepends list to the front of the array, and returns the number of
Xelements in the new array.@refill
X
X@item values(@code{%}@var{ARRAY})*
XReturns a normal array consisting of all the values of the named
Xassociative array.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node File operations, Directory reading routines, Array and list functions, Top
X@chapter File operations
X
XFunctions operating on a list of files return the number of files
Xsuccessfully operated upon.@refill
X
X@table @code
X
X@item chmod(@var{LIST})*
XChanges the permissions of a list of files. The first element of the
Xlist must be the numerical mode.@refill
X
X@item chown(@var{LIST})*
XChanges the owner and group of a list of files. The first two
Xelements of the list must be the numerical uid and gid.@refill
X
X@item link(@var{OLDFILE},@var{NEWFILE})
XCreates a new filename linked to the old filename.
X
X@item lstat(@var{FILE})
XLike stat, but does not traverse a final symbolic link.
X
X@item mkdir(@var{DIR},@var{MODE})
XCreates a directory with given permissions. Sets @code{$!} on failure.@refill
X
X@item select(@var{RBITS},@var{WBITS},@var{NBITS},@var{TIMEOUT})
XPerforms a select(2) system call with the same parameters.@refill
X
X@item readlink(@var{EXPR}*)*
XReturns the value of a symbolic link.
X
X@item rename(@var{OLDNAME},@var{NEWNAME})
XChanges the name of a file.
X
X@item rmdir(@var{FILENAME}*)*
XDeletes the directory if it is empty. Sets @code{$!} on failure.@refill
X
X@item stat(@var{FILE})
XReturns a 13-element array @code{($dev, $ino, $mode, $nlink, $uid, $gid,
X$rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks)}. @var{FILE}
Xcan be a filehandle, an expression evaluating to a filename, or @code{_}
Xto refer to the last file test operation. The parentheses may be omitted
Xif @var{FILE} is a filehandle, a variable, or @code{_}.@refill
X
X@item symlink(@var{OLDFILE},@var{NEWFILE})
XCreates a new filename symbolically linked to the old filename.
X
X@item unlink(@var{LIST})*
XDeletes a list of files.
X
X@item utime(@var{LIST})*
XChanges the access and modification times on each file of a list of
Xfiles. The first two elements of the list must be the numerical access
Xand modification times.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node Directory reading routines, Input/Output, File operations, Top
X@chapter Directory reading routines
X
X@table @code
X
X@item closedir(@var{DIRHANDLE})*
XCloses a directory opened by opendir.
X
X@item opendir(@var{DIRHANDLE},@var{DIRNAME})
XOpens a directory on the handle specified.
X
X@item readdir(@var{DIRHANDLE})*
XReturns the next entry (or an array of entries) in the directory.
X
X@item rewinddir(@var{DIRHANDLE})*
XPositions the directory to the beginning.
X
X@item seekdir(@var{DIRHANDLE},@var{POS})
XSets position for readdir on the directory.
X
X@item telldir(@var{DIRHANDLE})*
XReturns the postion in the directory.
X@end table
X
X@c----------------------------------------------------------------
X@node Input/Output, Search and replace functions, Directory reading routines, Top
X@chapter Input/Output
X
XIn input/output operations, @var{FILEHANDLE} may be a filehandle as
Xopened by the @code{open} operator, or a scalar variable which evaluates
Xto the name of a filehandle to be used.@refill
X
X@table @code
X
X@c %%rjc%% MS-DOS properly capitalized
X@item binmode(@var{FILEHANDLE})*
XArranges for the file opened on @var{FILEHANDLE} to be read in
X@code{binary} mode as opposed to @code{text} mode (MS-DOS only).@refill
X
X@item close(@var{FILEHANDLE})*
XCloses the file or pipe associated with the file handle.
X
X@item dbmclose(@code{%}@var{ARRAY})*
XBreaks the binding between the array and the dbm file.
X
X@item dbmopen(@code{%}@var{ARRAY},@var{DBMNAME}, @var{MODE})
XBinds a dbm or ndbm file to the associative array. If the database
Xdoes not exist, it is created with the indicated mode.@refill
X
X@item eof(@var{FILEHANDLE})
XReturns 1 if the next read will return end of file, or if the file is not
Xopen.@refill
X
X@item eof
XReturns the eof status for the last file read.
X
X@item eof()
XIndicates eof on the pseudo file formed of the files listed on the
Xcommand line.@refill
X
X@item fcntl(@var{FILEHANDLE},@var{FUNCTION},@code{$}@var{VAR})
XImplements the fcntl(2) function. This function has non-standard
Xreturn values. See the manual for details.@refill
X
X@item fileno(@var{FILEHANDLE})*
XReturns the file descriptor for a given (open) file.
X
X@item flock(@var{FILEHANDLE},@var{OPERATION})
XCalls flock(2) on the file. @var{OPERATION} adds from 1 (shared), 2
X(exclusive), 4 (non-blocking) or 8 (unlock).@refill
X
X@item getc[(@var{FILEHANDLE})*]
XYields the next character from the file, or @var{NULL} on @var{EOF}. If
X@var{FILEHANDLE} is omitted, reads from @var{STDIN}.@refill
X
X@item ioctl(@var{FILEHANDLE},@var{FUNCTION},@code{$}@var{VAR})
Xperforms ioctl(2) on the file. This function has non-standard return
Xvalues. See the manual for details.@refill
X
X@item open(@var{FILEHANDLE}[,@var{FILENAME}])
XOpens a file and associates it with @var{FILEHANDLE}. If @var{FILENAME}
Xis omitted, the scalar variable of the same name as the @var{FILEHANDLE}
Xmust contain the filename.  The filename may be optionally preceded by
X@code{>}, @code{>>} or @code{<} to select output/append/input mode.
XDefault mode is input. Precede with @code{+} to select read/write
Xaccess. Use @code{&@dots{}} to connect to an already opened filehandle.
XPipes to/from commands may be opened with @code{|@dots{}} and
X@code{@dots{}|} . Open returns 1 upon success, undef otherwise, except
Xfor pipes. The parentheses may be omitted, if only a @var{FILEHANDLE} is
Xspecified.@refill
X
X@item pipe(@var{READHANDLE},@var{WRITEHANDLE})
XReturns a pair of connected pipes.
X
X@item print[([@var{FILEHANDLE}] @var{LIST}*)*]
XPrints a string or a comma-separated list of strings. If
X@var{FILEHANDLE} is omitted, prints by default to standard output (or
Xto the last selected output channel---see select(@dots{})).@refill
X
X@item printf[([@var{FILEHANDLE}] @var{LIST})*]
XEquivalent to @code{print @var{FILEHANDLE} sprintf(@var{LIST})}.@refill
X
X@item read(@var{FILEHANDLE},@code{$}@var{VAR},@var{LENGTH})
XRead @var{LENGTH} binary bytes from the file into the variable.
XReturns number of bytes actually read.@refill
X
X@item seek(@var{FILEHANDLE},@var{POSITION},@var{WHENCE})
XRandomly positions the file. Returns 1 upon success, 0 otherwise.@refill
X
X@item select(@var{FILEHANDLE})*
XSets the current default filehandle for output operations. Returns
Xthe previously selected filehandle.@refill
X
X@item sprintf(@var{FORMAT},@var{LIST})
XReturns a string formatted by (almost all of) the usual printf
Xconventions.@refill
X
X@item tell[(@var{FILEHANDLE})]*
XReturns the current file position for the file. If @var{FILEHANDLE} is
Xomitted, assumes the file last read.@refill
X
X@item write[(@var{FILEHANDLE})]*
XWrites a formatted record to the specified file, using the format
Xassociated with that file. See Formats.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node Search and replace functions, System interaction, Input/Output, Top
X@chapter Search and replace functions
X
X@table @code
X
X@item [@var{EXPR} @code{=~}] [m]/@var{PATTERN}/[i][o]
XSearches a string for a pattern. If no string is specified via the @code{=~}
Xor @code{!~} operator, the @code{$_} string is searched. If you prepend
Xan @code{m} you can use any pair of characters as delimiters. If the
Xfinal delimiter is followed by the optional letter @code{i}, the
Xmatching is done in a case-insensitive manner. If you append @code{o},
Xvariables are interpolated only once. If used in a context that requires
Xan array value, a pattern match returns an array consisting of the
Xsubexpressions matched by the parentheses in pattern, i.e. @code{($1,
X$2, $3}@dots{}@code{)}.@refill
X
X@item ?@var{PATTERN}?
XThis is just like the /pattern/ search, except that it matches only
Xonce between calls to the reset operator.@refill
X
X@item [@code{$}@var{VAR} @code{=~}] s/@var{PATTERN}/REPLACEMENT/[g][i][e][o]
XSearches a string for a pattern, and if found, replaces that pattern
Xwith the replacement text and returns the number of substitutions made.
XOtherwise it returns false (0). Optional modifiers: @code{g} indicates
Xthat all occurrences of the pattern are to be replaced; @code{e}
Xindicates that the replacement string is to be interpreted as an
Xexpression, @code{i} and @code{o} as with /@var{PATTERN}/ matching. Any
Xdelimiter may replace the slashes; if single quotes are used, no
Xinterpretation is done on the replacement string.@refill
X
X@item study[(@code{$}@var{VAR}*)*]
XStudy the contents of @code{$}@var{VAR} in anticipation of doing many pattern
Xmatches on the contents before it is next modified.@refill
X
X@item [@code{$}@var{VAR} @code{=~}] tr/@var{SEARCHLIST}/@var{REPLACEMENTLIST}/
XTranslates all occurrences of the characters found in the search list
Xwith the corresponding character in the replacement list. It returns the
Xnumber of characters replaced. @code{y} may be used instead of
X@code{tr}.@refill
X@end table
X
X@c----------------------------------------------------------------
X@node System interaction, Networking, Search and replace functions, Top
X@chapter System interaction
X
X@table @code
X
X@item chdir [(@var{EXPR})*]
XChanges the working directory, @code{$HOME} if @var{EXPR} is omitted.
X
X@item chroot(@var{FILENAME}*)*
XChanges the root for the following commands.
X
X@item die(@var{LIST})*
XPrints the value of @var{LIST} to @var{STDERR} and exits with the current
Xvalue of @code{$!} (errno). If @code{$!} is 0, exits with the value of
X@code{($? >> 8)} (@code{`command`} status). If @code{($? >> 8)} is 0,
Xexits with 255.@refill
X
X@item exec(@var{LIST})*
XExecutes the system command in @var{LIST}.
X
X@item exit(@var{EXPR})*
XExits immediately with the value of @var{EXPR}.
X
X@item fork
XDoes a fork() call. Returns the child pid to the parent process and
Xzero to the child process.@refill
X
X@item getlogin
XReturns the current login name from @file{/etc/utmp}.
X
X@item getpgrp[(@var{PID})*]
XReturns the process group for process @var{PID} (0, or omitted, means
Xthe current process).@refill
X
X@item getppid
XReturns the process id of the parent process.
X
X@item getpriority(@var{WHICH},@var{WHO})
XReturns the current priority for a process, process group, or user.
X
X@item kill(@var{LIST})*
XSends a signal to a list of processes. The first element of the list
Xmust be the signal to send (numeric, or its name as a string).@refill
X
X@item setpgrp(@var{PID},@var{PGRP})
XSets the process group for the @var{PID} (0 = current process).
X
X@item setpriority(@var{WHICH},@var{WHO},@var{PRIO})
XSets the current priority for a process, process group or a user.
X
X@item sleep[(@var{EXPR})*]
XCauses the script to sleep for @var{EXPR} seconds, or forever if no
X@var{EXPR}. Returns the number of seconds actually slept.@refill
X
X@item syscall(@var{LIST})*
XCalls the system call specified in the first element of the list,
Xpassing the rest of the list as arguments to the call.@refill
X
X@item system(@var{LIST})*
XDoes exactly the same thing as @code{exec @var{LIST}} except that a fork is
Xdone first, and the parent process waits for the child process to
Xcomplete.@refill
X
X@item times
XReturns a 4-element array @code{($user, $system, $cuser, $csystem)}
Xgiving the user and system times, in seconds, for this process and the
Xchildren of this process.@refill
X
X@item umask[(@var{EXPR})*]
XSets the umask for the process and returns the old one. If @var{EXPR} is
Xomitted, returns current umask value.@refill
X
X@item wait
XWaits for a child process to terminate and returns the pid of the
Xdeceased process ($-1$ if none). The status is returned in @code{$?}.
X
X@item warn(@var{LIST})*
XPrints the message on @var{STDERR} like die(@dots{}), but doesn't exit.
X@end table
X
X@c----------------------------------------------------------------
X@node Networking, Miscellaneous, System interaction, Top
X@chapter Networking
X
X@table @code
X
X@item accept(@var{NEWSOCKET},@var{GENERICSOCKET})
XAccepts a new socket.
X
X@item bind(@var{SOCKET},@var{NAME})
XBinds the @var{NAME} to the @var{SOCKET}.
X
X@item connect(@var{SOCKET}, @var{NAME})
XConnects the @var{NAME} to the @var{SOCKET}.
X
X@item getpeername(@var{SOCKET})
XReturns the socket address of the other end of the @var{SOCKET}.
X
X@item getsockname(@var{SOCKET})
XReturns the name of the socket.
X
X@item getsockopt(@var{SOCKET},@var{LEVEL},@var{OPTNAME})
XReturns the socket options.
X
X@item listen(@var{SOCKET},@var{QUEUESIZE})
XStarts listening on the specified @var{SOCKET}.
X
X@item recv(@var{SOCKET},@var{SCALAR},@var{LENGTH},@var{FLAGS})
XReceives a message on @var{SOCKET}.
X
X@item send(@var{SOCKET},@var{MSG},@var{FLAGS}[,@var{TO}])
XSends a message on the @var{SOCKET}.
X
X@item setsockopt(@var{SOCKET},@var{LEVEL},@var{OPTNAME},@var{OPTVAL})
XSets the requested socket option.
X
X@item shutdown(@var{SOCKET},@var{HOW})
XShuts down a @var{SOCKET}.
X
X@item socket(@var{SOCKET},@var{DOMAIN},@var{TYPE},@var{PROTOCOL})
XCreates a @var{SOCKET} in @var{DOMAIN} with @var{TYPE} and @var{PROTOCOL}.
X
X@item socketpair(@var{SOCKET1},@var{SOCKET2},@var{DOMAIN},@var{TYPE},@var{PROTOCOL})
XAs socket, but creates a pair of bi-directional sockets.
X@end table
X
X@c----------------------------------------------------------------
X@node Miscellaneous, Info from system files, Networking, Top
X@chapter Miscellaneous
X
X@table @code
X
X@item defined(@var{EXPR})*
XTests whether the lvalue @var{EXPR} has a real value.
X
X@item dump [@var{LABEL}]
XImmediate core dump. When reincarnated, starts at @var{LABEL}.
X
X@item local(@var{LIST})
XDeclares the listed variables to be local to the enclosing block,
Xsubroutine or eval.
X
X@item package @var{NAME}
XDesignates the remainder of the current block as a package, having
Xa separate namespace.@refill
X
X@c %%rjc%% Changed "not omitted" to "supplied"
X@item reset [(@var{EXPR})*]
XResets @code{??} searches so that they work again. If @var{EXPR} is supplied,
Xit is interpreted as a list of single characters (hyphens allowed for
Xranges). All variables and arrays beginning with one of those letters
Xare reset to their pristine state.  Only affects the current
Xpackage.@refill
X
X@item sub @var{NAME} $\{$ @var{EXPR}; @dots{}\ $\}$
XDesignates @var{NAME} as a subroutine. Parameters are passed as array
X@code{@@_}. Returns the value of the last expression evaluated.@refill
X
X@item undef[(@var{LVALUE})*]
XUndefines the @var{LVALUE}. Always returns the undefined value.
X
X@item wantarray
XReturns true if the current context expects an array value.
X@end table
X
X@c----------------------------------------------------------------
X@node Info from system files, Regular expressions, Miscellaneous, Top
X@chapter Info from system files
X
X@file{/etc/passwd}.
XInfo is @code{($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell)}.
X
X@table @code
X
X@item endpwent
XEnds lookup processing.
X
X@item getpwent
XGets next info.
X
X@item getpwnam(@var{NAME})
XGets info by name.
X
X@item getpwuid(@var{UID})
XGets info by uid.
X
X@item setpwent
XResets lookup processing.
X@end table
X
X@file{/etc/group}.
XInfo is a 4-item array: @code{($name, $passwd, $gid, $members)}.
X
X@table @code
X
X@item endgrent
XEnds lookup processing.
X
X@item getgrgid(@var{GID})
XGets info by group id.
X
X@item getgrnam(@var{NAME})
XGets info by name.
X
X@item getgrent
XGets next info.
X
X@item setgrent
XResets lookup processing.
X@end table
X
X@file{/etc/hosts}.
XInfo is @code{($name, $aliases, $addrtype, $length, @@addrs)}.
X
X@table @code
X
X@item endhostent
XEnds lookup processing.
X
X@item gethostbyname(@var{NAME})
XGets info by name.
X
X@item gethostent
XGets next info.
X
X@item sethostent(@var{STAYOPEN})
XResets lookup processing.
X@end table
X
X@file{/etc/networks}.
XInfo is @code{($name, $aliases, $addrtype, $net)}.
X
X@table @code
X
X@item endnetent
XEnds lookup processing.
X
X@item getnetbyaddr(@var{ADDR},@var{TYPE})
XGets info by address and type.
X
X@item getnetbyname(@var{NAME})
XGets info by name.
X
X@item getnetent
XGets next info.
X
X@item setnetent(@var{STAYOPEN})
XResets lookup processing.
X@end table
X
X@file{/etc/services}.
XInfo is @code{($name, $aliases, $port, $proto)}.
X
X@table @code
X
X@item endservent
XEnds lookup processing.
X
X@item getservbyname(@var{NAME}, @var{PROTO})
XGets info by name.
X
X@item getservbyport(@var{PORT}, @var{PROTO})
XGets info by port.
X
X@item getservent
XGets next info.
X
X@item setservent(@var{STAYOPEN})
XResets lookup processing.
X@end table
X
X@file{/etc/protocols}.
XInfo is @code{($name, $aliases, $proto)}.
X
X@table @code
X
X@item endprotoent
XEnds lookup processing.
X
X@item getprotobyname(@var{NAME})
XGets info by name.
X
X@item getprotobynumber(@var{NUMBER})
XGets info by number.
X
X@item getprotoent
XGets next info.
X
X@item setprotoent(@var{STAYOPEN})
XResets lookup processing.
X@end table
X
X@c----------------------------------------------------------------
X@node Regular expressions, Formats, Info from system files, Top
X@chapter Regular expressions
X
XStandard UNIX regular expressions, with the following additions:
X
X@table @asis
X
X@item @code{(} @code{)} @code{|} @code{@{} @code{@}}
Xdo not have to be escaped with a @code{\}.
SHAR_EOF
echo "End of perlref.texinfo part 2"
echo "File perlref.texinfo is continued in part 3"
echo "3" > shar3_seq_.tmp
exit 0
--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------

jv@mh.nl (Johan Vromans) (06/27/90)

Archive-name: perlref.texinfo/part03

---- Cut Here and unpack ----
#!/bin/sh
# this is xxx.03 (part 3 of perlref.texinfo)
# do not concatenate these parts, unpack them in order with /bin/sh
# file perlref.texinfo continued
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
if test ! -r shar3_seq_.tmp; then
	echo "Please unpack part 1 first!"
	exit 1
fi
(read Scheck
 if test "$Scheck" != 3; then
	echo "Please unpack part $Scheck next!"
	exit 1
 else
	exit 0
 fi
) < shar3_seq_.tmp || exit 1
echo "x - Continuing file perlref.texinfo"
sed 's/^X//' << 'SHAR_EOF' >> perlref.texinfo &&
X
X@item @code{+}
Xmatches the preceding pattern element one or more times.
X
X@item @code{?}
Xmatches zero or one times.
X
X@c %%rjc%% syntax elaborated
X@item @code{@{@var{n} [, [@var{m}]]@}}
Xdenote the minimum (@var{n}) and maximum (@var{m}) match count.  If
X@code{,} is omitted, uses @var{m=n}.  If @var{m} is omitted but @code{,}
Xis present, uses @var{m=infinity}.@refill
X
X@item @code{\w}
Xmatches alphanumeric, including @code{_}, @code{\W} matches
Xnon-alphanumeric.@refill
X
X@item @code{\b}
Xmatches word boundaries, @code{\B} matches non-boundaries.
X
X@item @code{\s}
Xmatches whitespace, @code{\S} matches non-whitespace.
X
X@item @code{\d}
Xmatches numeric, @code{\D} matches non-numeric.
X@end table
X
X@code{\n}, @code{\r}, @code{\f}, @code{\t} and @code{\}@var{NNN} have
Xtheir usual meaning.@refill
X
X@code{\w}, @code{\s} and @code{\d} may be used within character classes,
X@code{\b} denotes backspace in this context.@refill
X
X@code{\1} @dots{}\ @code{\9} refer to matched sub-expressions inside the
Xmatch.@refill
X
X@code{$1} @dots{}\ @code{$9} can be used to refer to matched
Xsub-expressions outside the matching.@refill
X
X@table @asis
X
X@item @code{$+}
Xreturns whatever the last bracket match matched.
X
X@item @code{$&}
Xreturns the entire matched string.
X
X@item @code{$`}
Xreturns everything before the matched string.
X
X@item @code{$'}
Xreturns everything after the matched string.
X@end table
X
X@c----------------------------------------------------------------
X@node Formats, Special variables, Regular expressions, Top
X@chapter Formats
X
X@example
Xformat [@var{NAME}] =
X@var{FORMLIST}
X. 
X@end example
X
X@var{FORMLIST} pictures the lines, and contains the arguments which will
Xgive values to the fields in the lines. Picture fields are:@refill
X
X@table @code
X
X@item @@<<<@dots{}
Xleft adjusted field, the @code{<} is repeated to denote the
Xlength of the field;
X
X@item @@>>>@dots{}
Xright adjusted field;
X
X@item @@|||@dots{}
Xcentered field;
X
X@item @@*
Xa multi-line field.
X@end table
X
XUse @code{^} instead of @code{@@} for multi-line block filling.
X
XUse @code{~} at the beginning of a line to suppress unwanted empty lines.
X
XUse @code{~~} at the beginning of a line to have this format line
Xrepeated until all fields are exhausted.@refill
X
XSet @code{$-} to zero to force a page break.
X
X@c----------------------------------------------------------------
X@node Special variables, Special arrays, Formats, Top
X@chapter Special variables
X
XThe following variables are global and should be localized in subroutines:
X
X@table @asis
X
X@item @code{$_}
XThe default input and pattern-searching space.
X
X@item @code{$.}
XThe current input line number of the last filehandle that was read.
X
X@item @code{$/}
XThe input record separator, newline by default.
X
X@item @code{$,}
XThe output field separator for the print operator.
X
X@item @code{$"}
XThe separator which joins elements of arrays interpolated in
X strings.
X
X@item @code{$\}
XThe output record separator for the print operator.
X
X@item @code{$#}
XThe output format for printed numbers. Initial value is @code{%.20g}.
X
X@item @code{$*}
XSet to 1 to do multiline matching within a string, 0 to assume
Xstrings contain a single line. Default is 0.@refill
X
X@item @code{$?}
XThe status returned by the last backtick (``) command,
Xpipe close or system operator.
X
X@item @code{$]}
XThe perl version string as displayed with @code{perl -v}.
X
X@item @code{$[}
XThe index of the first element in an array, and of the first character
Xin a substring. Default is 0.@refill
X
X@item @code{$;}
XThe subscript separator for multi-dimensional array emulation.
XDefault is @code{"\034"}.
X
X@item @code{$!}
XIf used in a numeric context, yields the current value of errno. If
Xused in a string context, yields the corresponding error string.@refill
X
X@item @code{$@@}
XThe perl error message from the last eval or @code{do @var{EXPR}} command.
X
X@item @code{$:}
XThe set of characters after which a string may be broken to fill
Xcontinuation fields (starting with @code{^}) in a format.@refill
X
X@item @code{$0}
XThe name of the file containing the perl script being executed.
X
X@item @code{$$}
XThe process number of the perl running this script. Altered (in the
Xchild process) by fork().@refill
X
X@item @code{$<}
XThe real uid of this process.
X
X@item @code{$>}
XThe effective uid of this process.
X
X@item @code{$(}
XThe real gid of this process.
X
X@item @code{$)}
XThe effective gid of this process.
X@end table
X
XThe following variables are context dependent and need not be
Xlocalized:@refill
X
X@table @asis
X
X@item @code{$%}
XThe current page number of the currently selected output channel.
X
X@item @code{$=}
XThe page length of the current output channel. Default is 60 lines.
X
X@item @code{$-}
XThe number of lines left on the page.
X
X@item @code{$~}
XThe name of the current report format.
X
X@item @code{$^}
XThe name of the current top-of-page format.
X
X@item @code{$|}
XIf set to nonzero, forces a flush after every write or print on the
Xcurrently selected output channel. Default is 0.@refill
X
XThe following variables are always local to the current block:
X
X@item @code{$&}
XThe string matched by the last pattern match.
X
X@item @code{$`}
XThe string preceding what was matched by the last pattern match.
X
X@item @code{$'}
XThe string following what was matched by the last pattern match.
X
X@item @code{$+}
XThe last bracket matched by the last search pattern.
X
X@item @code{$1 @dots{} $9}
XContains the subpattern from the corresponding set of parentheses
Xin the last pattern matched.@refill
X@end table
X
X
X@c----------------------------------------------------------------
X@node Special arrays, The perl debugger, Special variables, Top
X@chapter Special arrays
X
X@table @asis
X
X@item @code{@@ARGV}
XContains the command line arguments for the script (not
Xincluding the command name). See @code{$0} for the command name.@refill
X
X@item @code{@@INC}
XContains the list of places to look for perl scripts to be
Xevaluated by the @code{do @var{EXPR}} command.@refill
X
X@item @code{@@_}
XParameter array for subroutines. Also used by split if not in
Xarray context.
X
X@item @code{%ENV}
XContains the current environment.
X
X@item @code{%SIG}
XUsed to set signal handlers for various signals.
X@end table
X
X
X@c----------------------------------------------------------------
X@node The perl debugger, Index, Special arrays, Top
X@chapter The perl debugger (invoked with @code{perl -d})
X
X@table @asis
X
X@item @code{h}
XPrints out a help message.
X
X@item @code{s}
XSingle steps.
X
X@item @code{c}
XContinues (until breakpoint or exit).
X
X@item @key{RET}
XRepeats last @code{s} or @code{n}.
X
X@item @code{n}
XSingle steps around subroutine call.
X
X@item @code{l} [@var{RANGE}]
Xlists a range of lines. @var{RANGE} may be a number, start - end,
Xstart + amount, or a subroutine name. If omitted, continues last
X@code{l}.@refill
X
X@item @code{L}
XLists lines that have breakpoints or actions.
X
X@item @code{t}
XToggles trace mode.
X
X@item @code{b} [@var{LINE}]
XSets breakpoint at (current) line.
X
X@item @code{b} @var{SUBNAME}
XSets breakpoint at the subroutine.
X
X@item @code{S}
XLists names of all subroutines.
X
X@item @code{d} @var{LINE}
XDeletes breakpoint at the given line.
X
X@item @code{D}
XDeletes all breakpoints.
X
X@item @code{A}
XDeletes all line actions.
X
X@item @code{V} [@var{PACKAGE}]
XLists all variables in a package. Default package is main.
X
X@item @code{a} @var{LINE} @var{COMMAND}
XSets an action for line.
X
X@item @code{<} @var{COMMAND}
XSets an action to be executed before every debugger prompt.
X
X@item @code{>} @var{COMMAND}
XSets an action to be executed before every @code{s}, @code{c} or @code{n}
Xcommand.@refill
X
X@item @code{!} [ [@code{-}]@var{NUMBER}]
XRedo a debugging command. Default is previous command.
X
X@item @code{H} [@code{-}@var{NUMBER}]
XDisplays the last @code{-}number commands of more than one letter.
X
X@item @code{q}
XQuits. You may also use your @key{EOF} character.
X
X@item @var{COMMAND}
XExecutes command as a perl statement.
X
X@item @code{p} @var{EXPR}*
XPrints @var{EXPR}.
X@end table
X
X@node Index, , The perl debugger, Top
X@chapter Index
X
XWe need command and function indices.
X
X@contents
X@bye
SHAR_EOF
echo "File perlref.texinfo is complete" &&
$TOUCH -am 0615095490 perlref.texinfo &&
chmod 0644 perlref.texinfo ||
echo "restore of perlref.texinfo failed"
set `wc -c perlref.texinfo`;Wc_c=$1
if test "$Wc_c" != "43795"; then
	echo original size 43795, current size $Wc_c
fi
rm -f shar3_seq_.tmp
echo "You have unpacked the last part"
exit 0
--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------