Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
186 views

Perl 5 Pocket Reference

https://www.tutorialspoint.com/execute_perl_online.php

Uploaded by

Agnathavasi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
186 views

Perl 5 Pocket Reference

https://www.tutorialspoint.com/execute_perl_online.php

Uploaded by

Agnathavasi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 74

Programming Tools

Pocket Reference

O'REILLY Johan Vromans


X

Perl 5
Pocket Reference

Second Edition

Johan Vromans

O'REILLY"
Cambridge Koln Paris Sebastopol Tokyo
Perl 5 Pocket Reference, Second Edition
byjohan Vromans

Copyright © 1998, 1996Johan Vromans. All rights reserved. Printed


in the United States of America.

Published by O'Reilly /k Associates, Inc.. 101 Morris Street,


Sebastopol, CA 95472.

Editors: Steve Talbott and Gigi Kstabrook


Production Editor Madeleine Newell
Printing History:
February 1996: First Edition.
August 1998: Second Fdition.

Nutshell Hsmdlxiok and the Nutshell Handbook logo are registered


trademarks of O'Reilly & Associates, Inc. The use of camel anil
llama images in association with the Perl language is a trademark
of O'Reilly & Associates, Inc.

Many of the designations used by manufacturers and sellers to


distinguish their products are claimed as trademarks. Where those
designations appear in this book, and O'Reilly & Associates. Inc.
was aware of a trademark claim, the designations have been
printed in caps or initial caps.

While every precaution has been taken in the preparation of this


book, the publisher assumes no responsibility for errors or
omissions, or for damages resulting from the use of the infonnation
contained herein.

0&

This book is primed on acid-free paper with 85% recycled content,
15% post-consumer waste. O'Reilly & Associates is committed to
using paper with the highest recycled content available consistent
with high quality.

ISBN: 1-56592-495-9
Table of Contents

Introduction 1
Conventions 1
Command-Line Options 2
Syntax 3
Embedded Documentation 4
Data Types 6
Literal Values 6
Variables 8
Context 9
Operators and Precedence 10
Statements 11
Subroutines, Packages, and Modules 13
Object-Oriented Programming 15
Standard Methods 16
Pragmatic Modules 16
Arithmetic Functions 18
Conversion Functions 19
Structure Conversion 20
String Functions 21
Array and Hash Functions 22
Regular Expressions 25
Search and Replace Functions 27
File Test Operators 29
Pile Operations 30
Input/Output 32
Formatted Printing 35
Formats 37
Tying Variables 38
Directory Reading Routines 39
System Interaction 39
Networking 42
System V IPC 43
Miscellaneous 44
Information from System Databases 45
Special Variables 49
Special Arrays 53
Special Hashes 53
Standard Modules 54
Environment Variables ,„ 62
Multithreading 63
The Perl Compiler 63
The Perl Debugger 64
Perl 5
Pocket Reference

Introduction
The Perl 5 Pocket Reference is a quick reference guide to Larry
Wall's Perl program. It contains a concise description of all
statements, functions, and variables, and lots of other useful
information. It is based on Perl Version 5.005.
The purpose of the Pocket Reference is to aid users of Perl in
finding the syntax of specific functions and statements, and
the meaning of built-in variables. It is not a self-contained
user guide; basic knowledge of the Perl language is required,
ll is also not complete; some of the more obscure variants of
Perl constructs have been left out. But all functions and vari-
ables arc mentioned in at least one way they can be used.
for more information on Perl, visit the Perl w e b site at
bttp://wuw.perl.com.

Conventions
this denotes text that you enter literally.
this means variable text, i.e., things you must fill in.
tbis\ means that this will default to $_ if omitted,
word is a keyword, i.e.. a word with a special meaning.
RinxrKN | denotes pressing a keyboard key.
I... 1 denotes an optional part.

Conventions
Command-Line Options
-a Turns on autosplit mode when used with - n or - p .
Splits to @F.
-c Checks syntax but does not execute. It does run
BEGIN and END blocks.
-d( -.module 1
Runs the script under the indicated module. Default
module is the debugger. Use -deO to start the
debugger without a script.
-DJltigs Sets debugging flags.
- e commandtitw
May be used to enter a single line of script. Multiple
- e commands may be given to build up a multiline
script.
-Prvgex Specifies a regular expression to split on if - a is in
effect,
-h Prints die Perl usage summary. Does not execute.
-text Files processed by the < > construct are to be edited
in place.
-Idir The directory is prepended to the search path for
Perl modules. ©INC. With - P , also tells the C
preprocessor where to look for include files.
-l( octnum 1
(That's the letter ell.) Enables automatic line-end
processing, e.g., -1013.
-mmodule
Imports the module before executing the script.
module may be followed by an equals sign and a
comma-separated list of items.
-Mmodule
Same as -m, but with more trickery.
-n Assumes an input loop around the script. Lines are
not printed.

Perl 5 Pocket Reference


-p Assumes an input loop around the script. Lines are
printed.
-P Runs the C preprocessor on the script before compi-
lation by Perl.
-s Interprets -xxx on the command line as a switch
and sets the corresponding variable Sxxx in the
script.
-S Uses the PATH environment variable to search for
the script.
-T Turns on taint checking,
-u Dumps core after compiling the script. To be used
with the untittmpQ.) program (where available).
Obsoleted.
-U Allows Perl to perform unsafe operations.
-v Prints the version and patch level of your Perl
executable.
-VI war \
Prints Perl configuration information, like
-V:man.dir.
-w Prints warnings about possible spelling errors and
other error-prone constructs in the script.
-x[ dir ]
Extracts the script from the input stream. If dir is
specified, Perl switches to this directory before run-
ning the script.
- 0 | vol J
(That's the number zero.) Designates an initial value
for the record separator $/. See also -I.

Syntax
Perl is a free-format programming language. This means that
in general, it does not matter how a Perl program is written
with regard to indentation and lines.

Syntax
An exception to this rule is when the Perl compiler encoun-
ters a sharp or pound symbol (#) in the input: it then discards
this symbol and everything following it up to the end of the
current input line. This can be used to put comments in Perl
programs. Real programmers put lots of useful comments in
their programs.
There are places where whitespace does matter: within literal
texts, patterns, and formats.
If the Perl compiler encounters the special token END , it
discards this symbol and stops reading input. Anything fol-
lowing this token is ignored by the Perl compiler, but can be
read by the program when it is run.
When Perl is expecting a new statement and encounters a
line that starts with =, it skips all input up to and including a
line mat starts with =cut. This is used to embed program
documentation.

Embedded Documentation
Tools exist to extract embedded documentation and generate
input suitable for several formatters like troff, iATfcX, and
HTML. The following commands can be used to control
embedded documentation:
=back See =over.
=begin FMT
Subsequent text up to a matching =end is only
included when processed for formatter FMT.
=cut Ends a document section.
=end FMT
See =begin.
=for FMT
The next paragraph is only included when pro-
cessed for formatter FMT.

Perl 5 Pocket Reference


=headl heading
Produces a first-level heading.
=head2 heading
Produces a second-level heading.
=item text
See =over.
=over N
Starts an enumeration with indent N. Items are speci-
fied using =item. The enumeration is ended with
=back.
=pod Introduces a document section. Any of the
s-commands can be used to introduce a document
section.
These commands apply to the paragraph of text that follows
them; paragraphs are terminated by at least one empty line.
An indented paragraph is considered to be verbatim text and
will be rendered as such.
Within normal paragraphs, markup sequences can be
inserted:
B<rt'.v/> Make text bold (for switches and programs).
C<code>
Literal code.
E<esca/K>>
A named character, e.g.. E<h> means a < and E<gt>
means a >.
¥<file> Filename.
I</c.v/> Italicize text (for emphasis and variables).
L<name>
A cross reference.
S<texl> Do not break on spaces in text.

Embedded Documentation
X<index>
An index entry.
Z<> A zero-width character.

Data Types
Array Indexable list of scalar values
Hash Associative list of scalar values
Scalar Strings, numbers, and references

Literal Values
Array (1, 2, 3) is a list of three elements.
(1. 2, 3)[0] is the first element from this list,
(1,2, 3)[-l] the last element.
( ) is an empty list.
(1..4) is the same as (1,2,3,4),
likewise ( ' a ' . . ' z ' ) .
( ' a ' „ ' z ' ) [ 4 , 7 , 9 ] is a slice of a list literal.
qw/foo bar .../ is the same as ( ' f o o ' , ' b a r ' , . . . ) .
Array reference
[1,2,3]
Array reference with named indices (pseudo-hash)
[(field 1 => l,field2 => 2. ... J]
Boolean
Perl has no boolean data type. Anything that is
undefined or evaluates to the null string, the number
zero, or the string "0" is considered false, everything
else is true (including strings like "00"!).
Code reference
sub { statements)
Filehandles
STDIN. STDOIJT. STDERR, ARGV, DATA.
User-specified: handle, $var.

Perl 5 Pocket Reference


Globs <paltem> evaluates to all filenames according to the
pattern. Use <$[var}> or glob $var 10 glob from a
variable.
Hash (associative list)
(keyl, vail, key2, val2,...)
Also (.keyl => vail, key>2 => val2, ...)
Hash reference
{keyl, vall^key2, val2,...}
Here-ls «identifier
Shell-style "here document." See the Perl documen-
tation for details.
Numeric
123 1_234 123.4 5E-I0 Oxff(hex) 0377 (octal)
Regular Expression
f\rfstring/modifiers
See the section "Regular Expressions" for details.
Special tokens
FILE : filename; LINE : line number;
PACKAGE : current package;
END : end of program; remaining lines can be
read using the filehandle DATA.
String
'abc'
Literal string, no variable interpolation or escape
characters, except V a n d \ \ . Also: q/abc/. Almost
any pair of delimiters can be used instead of/.../.
'abc"
Variables arc 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), \ x l b (hex),
\c( (control).
\l and \u lowercase/uppercase the following charac-
ter. \L and \U lowercase/uppercase until a \E is

Literal Values
encountered. \Q quotes non-word characters until a
\E is encountered.
"command"
Evaluates to the output of the command. Also:
qx/command/.

Variables
$var A simple scalar variable.
$var[27]
28th element of array @var.
$p = \@var
Now Sp is a reference to array @var.
$$p[27]
28th element of array referenced by $p.
Also, $p->(27].
$varl-l]
Last element of array @var.
$varl$i|[$j]
Sj-th element of $i-th element of array @var.
$var{' Feb'}
A value from hash %var.
$p = \%var
Now $p is a reference to hash %var.
$$p('Feb'|
A value from hash referenced by $p.
Also. $p->{'Feb'J.
$»var Last index of array @var.
@var The entire array; in scalar context, the number of
elements in die array.
@var[ 3,4,51
A slice of array ®var.
©varJ'aVb'J
A slice of %var; same as ($var{' a ' },$var{' b'}).

Perl 5 Pocket Reference


%var The entire hash; in scalar context, true if the hash
has elements.
$var('a',l,...)
Emulates a multidimensional list (deprecated).
Sc = \&mysub
Now $c is a reference to subroutine mysub.
$c->( orgs)
Calls the subroutine via the reference.
l>kg::var A variable from a package, e.g., $pkg::var, @pkg::ary.
\tbingie Reference to a thingie, e.g., \Svar, \%hash.
'name Refers to all thingies represented by name.
*nl = *n2 makes all nl aliases for n2.
*nl = \ $ n 2 makes the package variable $nl an alias
for $n2.
You can always use a block (see the section "Statements")
returning the right type of reference instead of the variable
identifier, e.g., $(...). 8t{...}. $$p is just a shorthand for ${$p}.

Context
Boolean
A special form of scalar context in which it only
matters if the result is true or false.
List A list value or an array is expected.
Scalar A single scalar value is expected.
Void No value is expected. If a value is provided, it is
discarded.
The following functions relate to context:
scalar expr
Forces scalar context for the expression.
wantarray
Returns true if the current context expects a list
value, undef in void context.

Context
Operators and Precedence
Perl operators have the following associativity and prece-
dence, listed from highest precedence to lowest.
Assoc. Operators Description
terms and
left See below.
list operators
left -> Infix dereference operator.
++ Auto-increment (magical on strings).
Auto-decrement.
right »* Exponentiation.
right \ Reference to an object (unary).
right t Unary negation, bitwise complement.
right + - Unary plus, minus.
left Binds a scalar expression to a pattern
match.
left \- Same, but negates the result.
left * / % X Multiplication, division, modulo,
repetition.
left + - . Addition, subtraction, concatenation.
left » « Bitwise shift right, bitwise shift left.
named unary
operators
e.g., sin. chdir. -f. -M.
Numerical relational operators.
tt gt le ge String relational operators.
== != <=> Numerical equal, not equal, compare.
eq ne emp Stringwise equal, not equal, compare.
Compare operators return -1 (less),
0 (equal), or 1 (greater).
left & Bitwise AND.
left 1 * Bitwise OR, exclusive OR.
left && Logical AND.
left II Logical OR.
In scalar context, ninge operator.
In list context, enumeration.
Alternative range operator.
right •>• Conditional (if ? then : else) operator.

10 I'erl 5 Pocket Reference


Assoc. Operators Description
right = += -= etc. Assignment operators.
left Comma operator, also list element
separator.
left => Same, enforces the left operand to he
a string.
list operators
See below.
(rightward)
right not Low precedence logical NOT.
left and Low precedence logical AND.
left or xor Low precedence logical OR. exclusive
OK.

Parentheses can be used to group an expression into a term.


A list consists of expressions, variables, or lists, separated by
commas. An array variable or an array slice may always be
used instead of (or as part of) a list.
Perl functions mat can be used as list operators have either
very high or very low precedence, depending on whether
you look at the left side of the operator or at the right side of
the operator. Parentheses can be added around the parameter
lists to avoid precedence problems.

The logical operators do not evaluate the right operand if the


result is already known after evaluation of the left operand.

Statements
A statement is an expression, optionally followed by a modi-
fier, and terminated with a semicolon. Statements can be
combined to form a block when enclosed in {}. The semi-
colon may be omitted after the last statement of the block.

Statetnents 11
Execution of expressions can depend on other expressions
using one of the modifiers if, unless, for, foreach, while, or until,
e.g.:
exprl if e.xprj;
exprl foreach list;
exprl until expr2:
The logical operators I I, &&, or?: also allow conditional
execution:
exprl | | exfirJ;
ex/>rl ? e.xprj: exprj;
blocks may be used to control flow:
if ( expr) block 11 elsif (iwpn block...] else block I

unless ( cxpr) block I else block ]

[ laM: I while ( expr) block I continue block I

I label. I until ( expr) block I continue block]

I label. I for ([ expr I; I expr 1 ; I expr I ) block

I to/*'/, i foreach mrf ( /is/) Woe*

I label ] block I continue Woe* I

for and foreach can be used interchangeably.


Program flow can be controlled with:
goto label
Finds the statement labeled with label and resumes
execution there, label may be an expression that
evaluates to the name of a label,
last I label ]
Immediately exits the loop in question. Skips the
continue block.

12 Perl 5 Pocket Keferettce


next [ label ]
Executes the continue block and starts the next itera-
tion of the loop.
redo [ label ]
Restarts the loop block without evaluating the condi-
tional again. Skips the continue block.
Special forms are:
do Woe* while expr;
do Wot* 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, or the list is
parenthesized.
bless ref[ , classname ]
Turns the object refimo an object in classname.
Returns the reference.
caller I expr ]
Returns a list (Spackage, $file, $line. ...) for a spe-
cific subroutine call, caller returns this information
for the current subroutine, caller(l) for the caller of
this subroutine, etc. Returns false if no caller.

Subroutines, Packages, and Modules 13


do subroutine list
Deprecated form of Iksubroutine.
goto iksubroutine
Substitutes a call to subroutine for the current
subroutine.
import module [ [ version ] list 1
Imports the named items from module.
no module \ list 1
Cancels imported semantics. See use.
package ( namespace 1
Designates the remainder of the current block as a
package with a namespace, or without one if
namespace is omitted.
prototype function
Reairns the prototype of the function as a string, or
undef if the function has no prototype.
require expr\
If expr is numeric, requires Perl to be at least that
version. Otherwise expr musi 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
die file does not evaluate to a true value. If expr is a
bare word, assumes extension .pm for the name of
the file. This form of module loading does not risk
altering your namespace.
return ( expr )
Returns from a subroutine with the value specified;
if no value, returns undef in scalar context and an
empty list in list context.
sub I name I [ {prolog ] block
Designates name as a subroutine. Parameters arc-
passed by reference as array @_. Returns the value
of the last expression evaluated, proto can be used
to define the required parameters. Without a block it
is just a forward declaration, without the name it is
an anonymous subroutine.

/4 Perl 5 Pocket Reference


I sub ) BEGIN block
Defines a setup block to be called before execution.
I sub ] END block
Defines a cleanup block to be called upon
termination.
[ sub ) IN1T block
Defines an initialization block to be called after com-
pilation, just before execution,
use module ( [ version ] list ]
Loads the named module into the current package at
compile time.

Object-Oriented Programming
Perl rules of object-oriented programming are as follows:
• 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 meth-
ods 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 called with:
ohjtvf—> method parameters or
method ohjrefparameters

Object-Oriented Programming 15
Standard Methods
The package UNIVERSAL contains methods that are automati-
cally inherited by all other classes:
can method
Returns a reference to the method if its object has it,
undef otherwise,
isa class
Returns true if its object is blessed into a subclass of
class.
VERSION [ need I
Returns the version of the class. Checks the version
if need is supplied.

Pragmatic Modules
Pragmatic modules affect die compilation of your program.
Pragmatic modules can be activated (imported) with use and
deactivated with no. These are usually block scoped.
attrs attributes
Sets/gets attributes of a subroutine,
use attrs "method" indicates that the invoking sub-
routine is a method.
use attrs "locked" protects the invoking subroutine
against concurrent access.
autouse mods
Each of the named modules will not be loaded until
one of its functions is called.
base classes
Establishes an IS-A relationship with the base classes
at compile time,
blib [ dir ]
Uses MakeMaker's uninstaller! version of a package.
dir defaults to the current director)'.

16 Perl 5 Pocket Reference


constant name => value
Pragma to declare constants.
diagnostics [ -verbose ]
Forces verbose warning diagnostics and suppress
duplicate warnings.
fields names
Implements compile-time class fields using pseudo-
hashes.
integer Computes arithmetic in integer instead of double
precision,
less what
Requests less of something from the compiler
(unimplemented).
lib names
Adds libraries to @INC, or remove them,
locale Uses and avoids POSIX locales for built-in opera-
lions,
ops operations
Restricts unsafe operations when compiling,
overload operator => subref
Packages for overloading Perl operators, operator is
the operator (as a string), subref A reference to the
subroutine handling the overloaded operator.
Example: use overload "+" => \&my_add;
re behaviors
Alters regular expression behavior.
use re "eval" allows zero-width code evaluation
assertions (see the section "Regular Expressions").
use re "taint" propagates tainting,
sigtrap info
Enables simple signal handling.
Example: use sigtrap qw(SEGV TRAP);

Pragmatic Modules 17
strict [ constructs ]
Restricts unsafe constructs,
use strict "refs" restricts the use of symbolic
references.
use strict "vars" requires all variables to be either
my or fully qualified.
use strict "subs" restricts the use of bareword iden-
tifiers that are not subroutines.
Without constructs, affects all of them.
subs names
Predeclares subroutine names, allowing you to use
them without parentheses even before they are
declared.
Example: use subs qw(ding dong);
vars names
Predeclares variable names, allowing you to use
them under the strict pragma.
Example: use vars qw($foo ©bar);
vmsish [ features \
Controls VMS-specific language features. VMS only.
use vmsish "exit" enables VMS-style exit codes.
use vmsish "status" allows system commands to
deliver VMS-style exit codes to the calling program.
use vmsish "time" makes all limes relative to the
local time zone.
Without features, affects all of them.

Arithmetic Functions
abs exprf Returns the absolute value of its operand.
atan2 y, x Returns the arctangent of y/x in the range -n to it.
cos expr\ Returns the cosine of expr (expressed in radians),
exp expri Returns e to the power of expr.
int expr] Returns the integer portion of expr.

18 Perl 5 Pocket Reference


log exprf Returns the natural logarithm (base e) of expr.
rand I expr ]
Returns a random fractional number between 0
(inclusive) and the value of expr (exclusive). If
expr is omitted, defaults to 1.
sin exprf Returns the sine of expr (expressed in radians),
sqrt exprf Returns the square rool of expr.
srand I expr ]
Sets the random number seed for the rand
operator,
time Returns the number of non-leap seconds since
whatever time the system considers to be the
epoch. Suitable for feeding to gmtime and
localtime.

Conversion Functions
chr expr\
Returns the character represented by the decimal
value expr.
gmtime I expr ]
In list context, converts a lime as returned by the
time function to a 9-elemenl list (0:$sec\ l:$min,
2:$hour, 3:$mday, 4:$mon, 5:$year, 6:$wday,
7:$yday, 8:$isdst) with the time localized for the
standard Greenwich time zone.
In scalar context, converts it to print format.
$mon has the range 0 (January) .. 11 (December)
and $wday has the range 0 (Sunday) .. 6 (Saturday).
expr defaults to the current time,
hex exprf
Returns the decimal value of expr interpreted as a
hex siring,
localtime I expr ]
Like gmtime, but with the time localized for the local
time zone.

Conversion Functions 19
oct expr\
Returns the decimal value of expr interpreted as an
octal string. If expr starts off with Ox, 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 of
bits bits each, and yields the decimal value of the
element at offset, bits must be a power of 2 between
1 and 32. May be assigned to.

Structure Conversion
pack template, list
Packs the values in list into a binary structure using
template. Returns a string containing the structure.
unpack template, expr
Unpacks the structure expr into a list, 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 Signed / 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
1 / 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
P Pointer to a structure (fixed-length string)
V / V Short / long in VAX (little endian) byte order
w A BER compressed integer
X / ® Null byte / null fill until position
X Back up a byte

20 Perl 5 Pocket Reference


Each character may be followed by a decimal number thai
will be used as a repeat count: an asterisk (*) specifies all
remaining arguments. If the format is preceded with %n,
unpack returns an H-bit checksum instead, n defaults to 16.
Whiiespace may be included in the template for readability.

String Functions
chomp fe/f
Removes line endings from all elements of the list;
returns the (total) number of characters removed.
chop Iist\
Chops off' the last character on all elements of the
list; returns the last chopped character.
crypt plaintext, salt
Encrypts a string (irreversibly).
eval expr\
expr is parsed and executed as if it were a Perl pro-
gram. The value returned is the value of the last
expression evaluated. If there is a syntax error or
runtime error, undef is returned by eval, and $@ is set
to the error message. See also eval in the section
"Miscellaneous."
index sir, substr [ , offset I , replacement ] ]
Returns die position of substr in str ai or after offset.
Replaces the found substring by the replacement
text if specified. If the substring is not found,
returns -1.
Ic exprf Returns a lowercase version of expr.
Icfirst e\pr\
Returns expr with iis first character in lowercase.
length expr\
Returns the length in bytes of expr.
quotemeta expr\
Returns expr with all regular expression metacharac-
ters quoted.

String Functions 21
rindex sir, substr I , offset |
Returns the position of the last substr in sir at or
before offset.
substr expr, qffsel I , leu 1
Extracts a substring of length ten starting at qffsel out
of expr and returns it. If offset is negative, counts
from the end of the string. If len is negative, leaves
that many characters off the end of the string. May
be assigned to.
uc expr\
Returns an uppercase version of expr.
ucfirst expr]
Returns expr with its first character in uppercase.

Array and Hash Functions


delete %basb\key\
delete @bash\keyl, key2, ...J
Deletes the specified value(s) from the specified
hash. Returns the deleted value(s) (unless basb is
tied to a package that does not support this).
each %basb
Returns a 2-element list 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, an empty lisl
is returned. The next call to each after that will start
iterating again.
A call to keys or values will reset the iteration.
exists expr
Checks if the specified hash key exists in this hash.
grep e\pr, list
grep block lisl
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.

Perl 5 Pocket Reference


In list context, returns die list of elements from list
for which expr returned true. In scalar context,
returns the number of such elements.
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
In list context, returns a list of all the keys of the
named hash. In scalar context, returns the number of
elements of the hash.
map exf>r, list
map block list
Evaluates expr or block for each element of the list,
locally setting $_ to refer to the element. Modifying
S_ will modify the corresponding element from list.
Returns the list of results.
pop [ ®array ]
Pops off and returns the last value of the array. If
®array is omitted, pops @ARGV or ®_ depending
on the current lexical scope.
push ®array, list
Pushes the values of the list onto the end of the
array. Returns the new length of the array.
reverse list
In list context, returns the list in reverse order.
In scalar context, concatenates the list elements and
returns the reverse of the resulting string.
scalar ®array
Returns the number of elements in the array.
scalar %basb
Returns a true value if the hash has elements
denned.

Array and Hash Functions 23


shift I ®array I
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 or ®_
depending on the current lexical scope.
sort [ subroutine ] list
Sorts the list and returns the sorted list value, sub-
routine, if specified, must return less than zero,
zero, or greater dian zero, depending on how the
elements of the list (available to the routine as pack-
age global variables $a and $b) are to be ordered.
subroutine may be (a variable containing) the name
of a user-defined routine, or a block.
splice ®array, offset [, length [ , list ] ]
Removes the elements of ®array designated by off-
set and length, and replaces them with list (if speci-
fied). Returns the elements removed. If offset is neg-
ative, counts from the end of the array.
split I pattern [ , expr\ [ , limit ] 1 ]
Splits expr (a string) into a list of strings, and returns
it. If limit is specified, splits into at most that number
of fields. If pattern is omitted, splits at the
whitespace (after skipping any leading whitespace).
If not in list context, returns the number of fields
and splits to @_. See also the section "Search and
Replace Functions."
unshift ©array, list
Prepends list to the front of the array, and returns
die number of elements in the new array.
values %hash
Returns a list consisting of all the values of die
named hash.

Perl 5 Pocket Reference


Regular Expressions
Kach character matches itself, unless it is one of the special
characters + ? . * * $ ( ) [ ] ( ) I V The special meaning of these
characters can be escaped using a \ .
Matches an arbitrary character, but not a newline
unless the s modifier is used (see m//s in section
"Search and Replace Functions").
(...) Groups a series of pattern elements to a single ele-
ment.
Matches the beginning of the target. In multiline
mode (see m//m in section "Search and Replace
Functions") also matches after every newline
character.
$ Matches the end of the line, or before a final new-
line character. In multiline mode also matches
before every newline character.
[... J Denotes a class of characters to match. ("...] negates
the class.
C..I...I...)
Matches one of the alternatives.
(?# text}
Comment.
(?: regex)
Like {regex) but does not make back-references.
Modifiers may be placed between the ? and :
(see ? modifier, later in this list).
(?= regex)
Zero-width positive look-ahead assertion.
(?! regex)
Zero-width negative look-ahead assertion.
(?< regex)
Zero-width positive look-behind assertion.
(?<! regex)
Zero-width negative look-behind assertion.

Regular Expressions 25
(?l code))
Executes Perl code while matching. Always succeeds
with zero width.
Requires the re "eval" pragma.
(?> regex)
Anchored subpattem.
O(.cond)ptrue [ I pfalse ] )
Selects a pattern depending on the condition, cond
should be the number of a parenthesised subpat-
tem, or one of the zero-width look-ahead, look-
behind and evaluate assertions.
0 modifier)
Embedded pattern-match modifier, modifier can be
one or more of i, m, s, orx. Modifiers can be
switched off by preceding the letter(s) with a minus
sign.
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.
{«,»«) Denotes the minimum n and maximum m match
count. («} means exactly n times; {«,) 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 digits, \D matches non-digits.

36 Perl 5 Pocket Reference


\A Matches the beginning of the string.
\Z Matches the end of the string, or before a newline at
the end.
\z Matches the end of the string.
\b Matches word boundaries, \B matches
non-boundaries.
\G Matches where the previous m//g search left off.
\t, \n, V, \f, \a, \ e , \OXY. \xXY. \c,Y, \I. \u, \L. \U, \E and \Q
havre their usual meaning, see "String" in the section
"Literal Values."
\w, \\V, \s, \S, \d, and \D
These may be used within character classes, but \b
denotes a 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. S+. $&. $ \ and $' in the section "Special
Variables."
With modifier x, whitespace and comments can be used in
the patterns for readability purposes.

Search and Replace Functions


If the right hand side of the =~ or !* is an expression rather
than a search pattern, substitution, or transliteration, it is
interpreted as a search pattern at runtime.
I expr =" ] [ m ] /pattern/ [ g [ c ] | ( i ) [ m J | o | [ s ] [ x l
Searches expr (default: $_) for a pattern.
If you prepend an m you can use almost any pair of
delimiters instead of the slashes.

Search ana" Replace Functions 27


For =~, its negation P may be used, which is true
when =~ would return a false result.
If used in list context, a list is returned consisting of
the subexpressions matched by the parentheses in
the pattern, i.e., ($!, $2, $3,...).
Optional modifiers: c prepares for continuation; 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 successful match or replacement is used.
With g, the match can be used as an iterator in
scalar context.
?pattem?
This is just like the /pattern/ search, except that it
matches only once between calls to the reset
operator.
I $ var =' I s/pattern/newtext/ [ e ] [ g ] [ i ] ( m ) | o ] ( s ) [ x ]
Searches the string var (default $_) for a pattern, and
if found, replaces that part with the replacement
text. It reairns 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 the other modifiers, see /pattern/
matching.
Almost any delimiter may replace the slashes; if
single quotes are used, no interpolation is done on
strings between the delimiters. Otherwise, strings
are interpolated as if in double quotes.
If bracketing delimiters are used, pattern and
netvtext may have their own delimiters, e.g.,
s(foo)tbar).

Jfi Peri 5 Pocket Reference


If pattern is empty, the most recent pattern from a
previous successful match or replacement is used.
[ %var = ' | Xt/searcblist/refilacementlistf [ c ] [ d ] ( s 1
Transliterates all occurrences of the characters found
in the search list into the corresponding character in
the replacement list. It returns the number of charac-
ters replaced, y may be used instead of tr.
Optional modifiers: c complements the searcblist;
d deletes all characters found in searcblist that do
not have a corresponding character in
replacetneutlist; s squeezes all sequences of charac-
ters that are translated into the same target character
into one occurrence of this character.
pos scahtr\
Returns the position where the last m//g search left
off for scalar. May be assigned to.
qtistrinfif modifiers
Compiles the string as a pattern and returns the
compiled pattern as a scalar value.
study Suari
Studies the scalar variable $varin anticipation of
performing many pattern matches on its contents
before the variable is next modified.

File Test Operators


These unary operators take 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 die information from the
preceding test orstat call.
-r-w-x
File is readable/writabie/executable by effective
uid/gid.

File Test Operators 29


•R-W-X
File is readable/writable/exeeutable 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.
-1 -S • P
File is a symbolic link/a socket/a named pipe
(FIFO).
- b - c File is a block/character special file,
-u - 8 -k
File has setuid/setgid/stieky bit set.
-t Tests if filehandle (STDIN by default) is opened to a
ity.
-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 modifieation/access/inode-change time. Mea-
sured in days. Value returned reflects the file age at
the time the script started. See also $*T in the sec-
tion "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 in
octal, e.g., 0644.
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. If gid is - 1 , the group is not changed.

jO Perl 5 Pocket Reference


link oldfile, neufile
Creates a new filename linked to the old filename.
Istat file Like slat, but if the last component of the filename is
a symbolic link, stats the link instead of the file il
links to.
mkdir dir, perm
Creates a directory with given permissions, e.g.,
0755.
readlink expr\
Returns the value of a symbolic link,
rename olduame. newname
Changes die name of a file,
rmdir filename^
Deletes the directory if it is empty,
stat file Returns a 13-element list (0:$dev, l:$ino, 2:$mode.
3:$nlink. 4:$uid, 5:Sgid, 6:$rdev, 7:$size, 8:$atime,
9:$mtime, 10:$ciime, ll:$blksize, IZiSblocks)../*/?
can be a filehandle, an expression evaluating to a
filename, or _ to refer to the last file test operation
or stat call. Returns an empty list if die stat fails.
Use the standard module File::stat for easy access to
this information,
symlink oldfile. neufile
Creates a new filename symbolically linked to the
old filename,
truncate file, size
Truncates file to size, file may be a filename or a
filehandle.
unlink lisi-f
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 limes.
The inode change time will be set to the current
lime.

File O(terations 31
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 a reference to
or the name of a filehandle to be used.
<filehandle>
In scalar context, reads a single line from the file
opened on filehandle. In list context, reads the rest
of the file.
<> Reads from the input stream formed by the files
specified in @ARGV, or standard input if no argu-
ments 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 or Mac).
close I filehandle ]
Closes the file or pipe associated with the filehandle.
Resets $.. Iffilehandleis omitted, closes the cur-
rently selected filehandle.
dbmclose %bash
Deprecated, use untie instead.
dbmopen %basb, dbmnattte, 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, %uar
Implements the/c«f/(2) function. This function has
nonstandard return values.

}2 Perl 5 Pocket Reference


fileno filehandle
Returns die file descriptor for a given (open)
filehandle.
(lock filehandle. operation
Calls a system-dependent locking routine on the file.
operation formed by adding 1 (shared), 2 (exclu-
sive), 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 ioctOX) on the file. This function has non-
standard return values,
open filehandle [, filenatne ]
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" Opens file for input. Also "<file".
">file" Opens file for output, creating it if
necessary.
"»filea
Opens file in append mode.
a
+<file"
Opens existingyite with read/write access.
n
+>file"
Clobbers old or create new file with
read/write access.
a
+»file'"
Read/write access in append mode.
" I cmd"
Opens a pipe to command cmd, forks if
cmd is -.

Input/Output 33
• and I"
Opens a pipe from command cmd, forks if
and is -.
file may be &filehnd, in which ease the new file-
handle is connected to the (previously opened)
filehandle JiMmd. If it is &=n,fite 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 I fitehattdle 1 I list\ ]
Prints the elemenis of list, converting them to strings
if needed. Iffilehandleis omitted, prints by default
to standard output (or to the last selected output
channel; see select).
printf I fitehattdle \\ list]
Equivalent to printfilehandtespnnlt list.
read filehandte, %var, length I, offset ]
Reads length binary bytes from die file into the vari-
able at offset. Returns number of bytes actually read,
0 on eof, and undef on failure.
readline expr
Internal function that implements the <> operator.
expr must be a typeglob.
readpipe expr
Internal function that implements the qx// operator.
expr is executed as a system command,
seek filehandte, [iosition, whence
Arbitrarily positions the file. Returns true if
successful,
select 1 filehandte )
Returns die currendy selected filehandle. Sets the
current default filehandle for output operations if
filehandle is supplied.

3'i Per! 5 Pocket Reference


select rbits, wbits, nbils, timeout
Performs a selecKZ) system call with the same
parameters.
sprintf format, list
Returns a string resulting from formatting a (possibly
empty) list of values. See the section "Formatted
Printing" for a complete list of formal conversions.
See the section "Formats" for an alternative way to
obtain formatted output.
sysopen filehandle, path, mode I , perms )
Performs an ofwii(Z) system call. The possible val-
ues and flag bits of mode are system-dependent;
they are available via the standard module Fcntl.
sysread filehandle, $var, length I, offset ]
Reads length bytes inlo Siwirat offset. Returns num-
ber of bytes actually read, 0 on eof, and undef on
failure.
sysseek filehandle, position, whence
Arbitrarily positions the file for use with sysread and
syswrite. See the Perl documentation for details on
the nonstandard return values of this function.
syswrite filehandle, scalar, length | , offset 1
Writes length bytes from scalar at offset.
tell I filehandle )
Returns the current file position for the file. If
filehandle is omitted, assumes the file last read.

Formatted Printing
printf a n d sprintf format a list of values according to a fonnat
string that may u s e the following conversions:
%% A percent sign.
%c The character corresponding to the ordinal value.
%d A signed integer.

Formatted Printing 35
%e A floating-point number (scientific notation).
%f A floating-point number (fixed decimal notation).
%g A floating-point number (%e or %f notation).
%i A synonym for %d.
%n The number of characters formatted so far is stored
into the corresponding variable in the parameter list.
%o An unsigned integer, in octal.
%p A pointer (address in hexadecimal).
%s A string.
%u An unsigned integer (decimal).
%x An unsigned integer (hexadecimal).
%D An obsolete synonym for %ld.
%E Like %e, but using an uppercase "E".
%F An obsolete synonym for %f.
%G Like %g, but with an uppercase "E" (if applicable).
%0 An obsolete synonym for %lo.
%U An obsolete synonym for %lu.
%X Like %xT but using uppercase letters.
The following flags can be put between the % and the conver-
sion letter:
space Prefix a positive number with a space.
+ Prefix a positive number with a plus sign.
Left-justify within the field.
0 Use zeroes instead of spaces to right-justify.
* Prefix a non-zero octal number with "0", and a non-
zero hex number with "Ox".
number Minimum field width.
.number
For a floating-point number: the number of digits
after the decimal point.
For a string: the maximum length.
For an integer: the minimum width.

36 Perl 5 Pocket Reference


I Interpret integer as "'long" or "unsigned long"
according to the C type,
h Interpret integer as "short" or "unsigned short"
according to the C type.
V Interpret integer according to Perl's type.
An asterisk (*) may be used instead of a number; the value
of the next item in the list will be used.
See the section "Formats" for an alternative way to obtain for-
matted output.

Formats
formline picture, list
Formats list according to picture and accumulates the
result into $"A.
write I filehanclle I
Writes a formatted record to the specified file, using
the formal associated with that file.
Iffilehanclle is omitted, the currently selected one is
taken.
Formats are defined as follows:
format I name I =
formlist

fonnlist is a sequence of lines, each of which is either a com-


ment line O in the first column), a picture line, or an argu-
ment line.
A picture line contains the arguments which will give values
to the fields in the lines. Other text is output as given.
Argument lines contain lists of values that are output in the
format and order of the preceding picture line.
name defaults to STDOIJT if omitted.

Formats 37
Picture fields are:
@<«... Left-adjusted field. Repeat the < to denote
the desired width.
@>»... Right-adjusted field.
@l 1 1... Centered field.
©#.##.., Numeric format with implied decimal point.
@> Multiline field.
Use * instead of® for multiline block filling.
Use ~ in a picture line to suppress unwanted empty lines.
Use ~" in a picture line to have this format line repeated until
all fields are exhausted.
Set $- to zero to force a page break on the next write.
See also $*, $", $"A, $"F, $-, and $= in the section 'Special
Variables."

Tying Variables
tie var, ctassname, [ list )
Ties a variable to a package class that will handle it.
list is passed to the class constructor,
tied var Returns a reference to the object underlying var, or
undef if var is not tied to a package class,
untie var
Breaks the binding between the variable and the
package class.
A class implementing a tied scalar should define die methods
TIESCALAR, FETCH, STORE, and possibly DESTROY.
A class implementing a tied ordinary array should define the
metliods TIEARRAY, FETCH, STORE, FETCHSIZE, STORESIZE,
and perhaps DESTROY.

38 Perl 5 Pocket Reference


A class implementing a lied hash should define the methods
TIEHASH, FETCH, STORE, EXISTS, DELETE CLEAR. FIRSTKEY,
NEXTKEY, and optionally DESTROY.
A class implementing a tied filehandle should define the
methods TIEHANDLE, at least one of PRINT. PRINTF. WRITE,
READLINE, GETC, READ, and possibly CLOSE and DESTROY.
Several base classes to implement tied variables are available
in the standard modules library.

Directory Reading Routines


closedir dirhandle
Closes a director)' opened by opendir.
opendir dirhandle, dirname
Opens a directory on the handle specified,
readdir dirhandle
In scalar context, returns the next entry from the
directory or undef if none remains.
In list context, returns a list of all remaining entries
from the directory,
rewinddir dirhandle
Positions the directory to the beginning,
seekdir dirhandle, pos
Sets position for readdir on the directory, pav should
be a file offset as returned by telldir.
lelldir dirhandle
Returns the position in the directory.

System Interaction
alarm expr
Schedules a SIGALRM to be delivered after expr sec-
onds. If expris 0, cancels a pending timer.

System Interaction 39
chdir I expr )
Changes the working directory. Uses $ENV{HOME)
or SENVfLOGNAME} 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". Inside aneval, the error mes-
sage is stuffed into $@, and the evat is terminated
and returns undef; this makes die the way to raise an
exception.
exec ( program ] list
Executes the system command in list; does not
return, program can be used to designate the pro-
gram to execute command.
exit [ expr ]
Exits immediately with the value of expr, which
defaults to 0 (zero). Calls END routines and object
destructors before exiting.
fork Does afork(2) system call. Returns the process ID of
the child to the parent process (or undef on failure)
and zero to the child process.
getlogin Returns the current login name as known by the
system. If it returns false, use getpwuid.
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.
getprtority which, who
Returns the current priority for a process, process
group, or user. Use getpriority 0,0 to designate the
current process.

40 Perl 5 Pocket Reference


glob pat Returns a list of filenames that match the shell pat-
tern pat.
Kill list Sends a signal to a list of processes. The first ele-
ment of the list must be the signal to send (either
numeric, or its name as a string). Negative signals
kill process groups instead of processes.
setpgrp put. pgrp
Sets the process group for the piti (0 means the cur-
rent process).
setpriority which, who, priority
Sets the current priority for a process, process
group, or a user.
sleep I 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. Returns - 1 on error.
system | program J 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. During the wait,
the signals SIGINT and SIGQU1T are passed to the
child process.
Returns the exit status of the child process. 0 indi-
cates success, not failure.
program can be used to designate the program to
execute command.
times Returns a 4-element list (0:$user, l:$system,
2:$cuser, 3:$csystem) giving the user and system
times, in seconds, for tliis process and the children
of this process.

System Interaction 41
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. Returns 1 when process pid is dead, -
-1 if nonexistent.
warn I list \
Prints list on STDERR like die, but doesn't exit, list
defaults to "Warning: something's wrong".

Networking
accept newsocket, genericsockel
Accepts a new socket,
bind socket, name
Binds the name to the socket.
connect socket, name
Connects the name to the socket,
gelpeername 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, allowing
queuesize connections,
recv socket, Svar, length, flags
Receives a message on socket of length bytes into
scalar variable Svar.

42 Perl 5 Pocket Reference


send socket, msg, flags {, to ]
Sends a message on the socket.
selsockopt 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 socket!, socke!2, domain, type, protocol
Works the same as socket, but creates a pair of
bidirectional sockets.

System VIPC
Depending on your system configuration, certain system files
need to be required to access the message- and semaphore-
specific operation names.
msgctl id, and, args
Calls msgc(Kl). If cmd is &IPC_STAT then args must
be a variable. See the Perl documentation for details
on the nonstandard return values of this function,
msgget key,jlags
Creates a message queue for key. Returns the mes-
sage queue identifier,
msg rev id, $uar, size, type, flags
Receives a message from queue iV/into $var.
msgsnd id, msg, flags
Sends msg to queue id.
semcll id. semnum, cmd, arg
Calls semctld). If cmd is &IPC.STAT or &GETALL
then arg must be a variable.
semget key, nsems, size, flags
Creates a set of semaphores for key. Returns die
message semaphore identifier.

System VIPC 43
semop key, ...
Performs semaphore operations,
shmctl id, and, arg
Calls shmctKl). If and is &IPC_STAT then arg must
be a scalar 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 die contents of shared
memory segment id starting at offset pos into Svar.
shmwrite id, string, pos, size
Writes at most size bytes of siring into the contents
of shared memory segment id at offset pos.
Miscellaneous
defined expr
Tests whether the expr has an actual value.
do filename
Executesfilenameas a Perl script. See also require in
the section "Subroutines, Packages, and Modules."
dump [ label ]
Immediate core dump. When reincarnated, starts at
label. Obsolete.
eval ( expr, ...)
Executes the code between I and I. Traps runtime
errors and returns as described with eva\(expr), in
the section "String Functions."
local variable
Gives a temporary value to the named package vari-
able, which lasts until the enclosing block, file, or
eval exits.

44 Perl 5 Pocket Reference


my variable
Creates a scope for the variable lexically local to the
enclosing block, file, or eval.
ref exf>r\
Returns a true value if expr is a reference. Returns
the package name if expr has been blessed into a
package.
reset I expr 1
expr is a string of single letters. All variables begin-
ning with one of those letters are reset to their pris-
tine state.
If expr is omitted, resets ?? searches so thai they
work again.
Only affects the current package.
undef lmlue\
Undefines the lvalue. Always returns the undefined
value.

Information from System Databases


Information About Users
In scalar context, each of these routines returns a 10-element
list: <0:$name, l:$passwd. 2;$uid, 3:$gid, 4:$quota, 5:Scom-
ment, 6:$gcos, 7:$dir, 8:$shell, 9:$expire).
Use the standard module User::pwem for easy access to this
information.
endpwent
Ends lookup processing,
getpwent
Gels next user information.
In scalar context, returns the username.
getpwnam name
Gets information by name.
In scalar context, returns the user ID.

Information Afiout Users 45


getpwuid aid
Gets information by user ID.
In scalar context, returns the username.
setpwent
Resets lookup processing.
Information About Groups
In list context, each of these routines returns a 4-element list:
(0:$name, l:$passwd, 2:$gid, 3:$members).
Smembers contains a space-separated list of the login names
of the group members.
Use the standard module User::grent for easy access to this
information.
endgrent
Ends lookup processing.
getgrent Gets next group information.
In scalar context, returns the group name,
getgrgid gid
Gets information by group ID.
In scalar context, returns the group name,
getgrnam name
Gets information by name.
In scalar context, returns the group ID.
setgrent Resets lookup processing.
Information About Networks
In list context, each of these routines returns a 4-element list:
(0:$name, l-.Saliases, 2:$addrtype, 3:$net).
Use the standard module Net::netent for easy access to this
information.
endnetent
Ends lookup processing,
getnetbyaddr addr, type
Gets information by address and type.
In scalar context, returns the network name.

46 Perl 5 Pocket Reference


getnetbyname name
Gets information by network name.
In scalar context, returns the network number,
getnetent
Gets next network information.
In scalar context, returns the network name,
setnetent stayopen
Resets lookup processing.
Information About Network Hosts
In list context, each of these routines returns a list of at least
5 elements: (0:$name, l:$aliases, 2:$addrtype. 3:$length,
4:Saddr [ , more addresses 1 ).
Use the standard module Net::hostent for easy access to this
information.
endhostent
Ends lookup processing,
gethostbyaddr addr, addrtype
Gets information by IP address.
In scalar context, returns the hostname,
gethostbyname name
Gets information by hostname.
In scalar context, returns the host address,
gethostent
Gets next host information.
In scalar context, returns the hostname,
sethostent stayopen
Resets lookup processing.
Information About Network Services
In list context, each of these routines returns a 4-element list:
(0:$name. l:$aliases, 2:$port, 3:$proto).
Use the standard module Net::servent for easy access to this
information.

Information A bout Network Services 47


endservent
Ends lookup processing,
getservbyname name, proto
Gets information by service name.
In scalar context, returns the port number,
getservbyport port, proto
Gets information by service port.
In scalar context, returns the service name,
getservent
Gets next service information.
In scalar context, returns the service name,
setservent stayopen
Resets lookup processing.
Information About Network Protocols
In list context, each of these routines returns a 3-element list:
(0:$name, l:$aliases, 2:$proto).
Use the standard module Net::protoent for easy access to this
information.
endprotoent
Ends lookup processing,
getprotobyname name
Gets information by protocol name.
In scalar context, returns the protocol number,
getprotobynumber number
Gets information by protocol number.
In scalar context, returns the protocol name,
getprotoent
Gets next protocol information.
In scalar context, returns the protocol name,
setprotoent stayopen
Resets lookup processing.

48 Perl 5 Pocket Reference


Special Variables
The alternative names are provided by the standard module
English.

The following variables are global and should be localized in


subroutines:
S_ Alternative: $ARG.
The default input, output, and pattern-searching
space.
S. Alternative: $INPUT_LINE_NTJMBER, SNR.
The current input line number of the last filehandle
read.
S/ Alternative: $INPUT_RECORD_SEPARATOR, SRS.
The input record separator, newline by default. May
be multicharacter.
S, Alternative: $OUTPUT_FIELD_SEPARATOR, SOFS.
The output field separator for the print function.
$" Alternative: SLIST_SF.PARATOR.
The separator that joins elements of arrays interpo-
lated in strings.
$\ Alternative: $OUTPUT_RECORD_SEPARATOR,
SORS.
The output record separator for the print function.
$* The output format for printed numbers. Deprecated.
Use printf instead.
$* Set to 1 to do multiline matching within strings.
Deprecated; see the m and s modifiers in the section
"Search and Replace Functions."
$? Alternative: $CHlLD_ERROR.
The status returned by the last \ . . " command, pipe
close, wait, waitpid. or system function.
$1 Alternative: $PERL_VERSION.
The Perl version number, e.g.. 5.005.

Special Variables 49
$[ The index of the first element in an array or list, and
of the first character in a substring. Default is 0.
Deprecated. Do not use.
$; Alternative: SSUBSCRlPT_SEPARATOR, SSUBSEP.
The subscript separator for multidimensional list
emulation. Default is "\034".
$! Alternative: $OS_ERROR, SERRNO.
Used in a numeric context, yields the current value
of errno. Used in a suing context, yields the corre-
sponding error string.
5® Alternative: $EVAL_ERROR.
The Perl error message from the last eval or do expr
command.
$: Alternative: $FORMAT_LINE_BREAK_CHARACTERS.
The set of characters after which a string may be
broken to fill continuation fields (starting with *) in
a format.
$0 Alternative: SPROGRAM.NAME.
The name of the file containing the Perl script being
executed. May be assigned to.
$$ Alternative: SPROCESSJD, $PID.
The process ID of the Perl interpreter running this
script. Altered (in the child process) by fork.
$< Alternative: $REAL_USER_ID, $UID.
The real user ID of this process.
$> Alternative: $EFFECnVE_USER_lD, $EU1D.
The effective user ID of this process.
$( Alternative: $REAL_GROUP_ID. SGID.
The real group ID, or space-separated list of group
IDs, of this process.
$) Alternative: $EFFECnVE_GROUP_!D, SEGID.
The effective group ID. or space-separated list of
group IDs, of this process.
$~A Alternative: $ ACCUMULATOR.
The accumulator for formline and write operations.

50 Perl 5 Pocket Reference


$'D Alternative: SDEBUGGING.
The debug flags as passed to Perl using - D .
$*E Alternative: $EXTENDED_OS_ERROR.
Operating system dependent error information.
S*F Alternative: $SYSTEM_FD_MAX.
The higliest system file descriptor, ordinarily 2.
$"H The current state of syntax checks.
$*I Alternative: $INPLACE_EDIT.
In-place edit extension as passed to Perl using - i .
$'L Alternative: $I:ORAIAT_FORMFKED.
Formfeed character used in formats.
$*M Emergency memory pool.
$"0 Altemauve: SOSNAME.
Operating system name.
S'P Alternative: SPERLDB.
Internal debugging flsig.
$"S Current state of the Perl interpreter.
$*T Alternative: SBASETIME.
The time (as delivered by time) when the program
started. This value is used by die file test operators
-M. -A. and -C.
$*W Alternative: SWARNING.
The value of the - w option as passed to Perl.
$*X Alternative: $EXECLTABLE_NAME.
The name by which this Perl interpreter was
invoked.
The following variables are context dependent and need not
be localized:
$% Alternative: $FORMAT_PAGE_NUMBER.
The current page number of the currently selected
output channel.
S= Alternative: $FORMAT_LlNES_PER_PAGE.
The page length of the current output channel.
Default is 60 lines.

Special Variables 51
$- Alternative: $FORMAT_LINES_LEFT.
The number of lines remaining on the page.
$~ Alternative: $FORMAT_NAME.
The name of the current report format.
$* Alternative: SFORMAT_TOP_NAME.
The name of the current top-of-page format.
$1 Alternative: SOUTPUT_AUTOFLUSH.
If set to nonzero, forces a flush after every write or
print on the currently selected output channel.
Default is 0.
SARGV The name of the current file when reading from < >.
The following variables are always local to the current block:
$& Alternative: SMATCH.
The string matched by the last successful pattern
match.
$' Alternative: SPREMATCH.
The siring preceding what was matched by the last
successful match.
$' Alternative: SPOSTMATCH.
The string following what was matched by the last
successful match.
$+ Alternative: $LAST_PAREN_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.

52 Perl 5 Pocket Reference


Special Arrays
The alternative names are provided by the standard module
English.
@ARGV Contains the command-line arguments for the script
(not including the command name, which is in SO).
©EXPORT
Names (he methods and other symbols a package
exports by default.
@EXPORT_OK
Names the methods and other symbols a package
can export upon explicit request.
@F When command-line option - a is used, contains the
split of the input lines.
@INC Contains the list of places to look for Perl scripts to
be evaluated by the do filename, use and require
commands. Do not modify directly, but u s e the use
lib pragma or - I command-line option instead.
@ISA List of base classes of the current package.
©_ Alternative: @ARG.
Parameter array for subroutines. Also used by split
if not in list context,

Special Hashes
%ENV Contains the current environment. The key is the
name of an environment variable; the value is its
current setting.
%EXPORT_TAGS
Defines names for sets of symbols.
%1NC List of files that have been included with use, require,
or do. The key is the filename as specified: the value
the location of the file.

Special Hashes S3
%SIG Used to set signal handlers for various signals. The
key is the name of the signal (without the SIG pre-
fix); the value a subroutine that is executed when
the signal occurs.
„WARN and DIE are pseudo-signals to
attach handlers to Perl warnings and exceptions.

Standard Modules
AnyDBM_FUe
Provides a framework for multiple dbm files.
AutoLoader
Loads functions only on demand.
AutoSplit
Splits a package for autoloading.
B Experimental package that implements byte compi-
lation, a Perl to C translator, and other interesting
things.
Benchmark
Benchmarks running times of code.
Bundle::CPAN
A bundle to play with all the oilier modules on
CPAN.
Carp Warns of errors.
CGI Simple Common Gateway Interface Class.
CGI::Apache
CGI addition for Apache's Perl API.
CGI::Cookie
Interface to Netscape Cookies.
CGl:Fast
CGI interface for FastCGl.
CGI.Push
Simple interface to Server Push.

54 Perl 5 Pocket Reference


Classr.Struct
Declares struct-like datatypes as Perl classes.
Coring Accesses Perl configuration information.
CPAN Maintenance of Perl modules from CPAN sites.
Cwd Gets the pathname of the current working directory.
Data::Dumper
Reveals Perl data structures as strings.
DB.File Access to Berkeley DB files.
Devel::SelfStubber
Generates stubs for a SelfLoading module.
Oirhandle
Supplies object methods for directory handles.
DynaLoader
Dynamically loads C libraries into Perl code.
English Uses nice English names for ugly punctuation vari-
ables.
Env Imports environment variables.
Exporter
Implements default import method for modules.
ExtUtils::Command
Replacements for common Unix commands (for
Makefiles).
ExtUtils::Embed
Utilities for embedding Perl in C/C++ applications.
ExtUtils::Install
Installs files from here to there.
ExtUtils: installed
Inventory management of installed modules.
ExtUtils::Liblist
Determines libraries to use and how to use them.
ExtUtils::MakeMaker
Creates an extension Makefile.

Standard Modules 55
ExtUtlls::Manifest
Utilities to write and check a MANIFEST file.
ExtUtils-Miniperl
Writes the C code for perlmain.c.
ExtUtils:: Mkbootstrap
Makes a bootstrap file for use by DynaLoader.
ExtUtils: :Mksymlists
Writes linker options files for dynamic extension.
ExtUtils: :MM_OS2
Methods to override Unix behavior in
ExtUtils::MakeMaker.
ExtUtils::MM_Unix
Methods used by ExtUtils: :MakeMaker.
ExtUtils::MM_VMS
Methods to override Unix behavior in
ExtUtils;: MakeMaker.
ExtUtils: :MM_Win32
Methods to override Unix behavior in
ExtUtils::MakeMaker.
ExtUtils-Packlist
Manages packlist files.
ExtUtils:: test lib
Adds blib directories to ©INC.
Fatal Replaces functions with equivalents that succeed or
die.
Fcntl Loads the C fcntl.h defines.
Fite::Basename
Parses file specifications.
File::CheckTree
Runs many filetest checks on a tree.
File::Copy
Copies files or filehandles.
File::DosGlob
DOS-like globbing (with extensions).

56 Perl 5 Pocket Reference


File::Find
Traverses a file tree.
File::Path
Creates or remove a series of directories.
FiIe::Spec
Portably performs operations on filenames.
File::Spec::Mac
Methods for MacOS file specs.
File::Spec::OS2
Methods for OS/2 file specs.
File::Spec::Unix
Methods used by File::Spec for Unix.
File::Spec::VMS
Methods for VMS file specs.
File::Spec::Win32
Methods for Win32 file specs.
File::stat
By name interface to Perl's built-in stat functions.
FileCache
Keeps more files open than the system permits.
FileHandle
Supplies object methods for filehandles.
FindBin Locates directory of original Perl script.
GDBM_FUe
Access to the gdbm library.
Getopt::Long
Hxtended handling of command-line options. Suits
all needs.
Getopt::Std
Processes single-character switches with switch
clustering.
I18N::Collate
Compares 8-bit scalar data according to the current
locale.

Standard Modules 57
IO Loads various I/O modules.
IO::File Supplies object methods for filehandles.
IO::Handle
Supplies object methods for I/O handles.
IO::Pipe
Supplies object methods for pipes.
IO::Seckable
Supplies seek-based methods for I/O objects.
IO::Select
Object interface to the select system call.
IO::Socket
Object interface to socket communications.
IPC::Msg
Interface to System V Message IPC.
IPC::Open2
Open a pipe to a process for both reading and
writing.
IPC:;Open3
Open a pipe to a process for reading, writing, and
error handling.
IFC::Semaphore
Interface to System V semaphores.
IPC::SysV
System V IPC object class.
Math::BigFloat
Arbitrary length float math package.
Math::BigInt
Arbitrary size integer math package.
Math::Complex
Complex numbers and associated mathematical
functions.
NDBM_File
tied access to ndbm files.

58 Perl 5 Pocket Reference


Netr.hostent
Access by name to gethostent and friends.
Net::netent
Access by name to getnetent and friends.
Net::Ping
Checks wliether a host is up.
Net::protoent
Access by name to getprotoent and friends.
Net::servent
Access by name to getservent and friends.
O Experimental compiler backend.
Opcode Disables named opcodes when compiling Perl code.
OS2::ExtAttr
Perl access to extended attributes. OS/2 only.
OS2::PrfDB
Perl extension to access the OS/2 setting database.
OS/2 only.
OS2::Process
Constants for systemC) call on OS/2. OS/2 only.
OS2::REXX
Access to DLLs with REXX calling convention and
REXX runtime. OS/2 only.
Pod::Html
Module to convert POD files to HTML
Pod::Text
Converts POD data to formatted ASCII text.
POSLX Interface to IEEE Std 1003-1.
Safe Compiles and executes code in restricted
compartments.
SDBM_File
tied access to sdbm files.
Search::Dict
Searches for key in dictionary file.

Standard Modules 59
Select Saver
Saves and restores a selected filehandle.
SellLoader
Loads functions only on demand.
Shell Runs shell commands transparently within Perl.
Socket Loads the C socket.h defines and structure
manipulators.
Symbol Manipulates Perl symbols and their names.
Sysr.Hostname
Tries every conceivable way to get the name of this
system.
Sys::Syslog
Interface to the Unix S)>slog(3) calls.
Term::Cap
Perl interface to Unix lerntcap(3)-
Term::Complete
Word completion module.
Term::ReadLine
Interface to various readline packages.
Test::Harness
Runs Perl standard test scripts with statistics.
Text::Abbrev
Creates an abbreviation table from a list.
Text::ParseWords
Parses text into a list of tokens.
Text::Soundex
Implementation of the Soundex Algorithm as
described by Donald Knuth.
Text::Tabs
Expands and unexpands tabs.
Text:: Wrap
Line wrapping to form simple paragraphs.
Thread Implementation of Perl threads.

60 Perl 5 Pocket Reference


Thread: :Queue
Implementation of thread-safe queues.
Thread-Semaphore
Implementation of thread-safe semaphores-
Thread: :Signal
Implementation of reliable signals using threads.
Thread: Specific
Thread-specific keys.
Tie:: Arrays
Base class definitions for tied arrays.
Tie-Handle
Base class definitions for tied filehandles.
Tie::Hash
Base class definitions for tied hashes.
Tie::RefHash
Use references as hash keys.
Tie-Scalar
Base class definitions for tied scalars.
Tie::StdHash
Basic methods for tied hashes.
Tie::StdScalar
Basic methods for tied scalars.
Tie-SubstrHash
Fixed table-size, fixed key-length hashing.
Time::LocaI
Efficiently computes time from local and GMT time.
UNIVERSAL
Base class for all classes (blessed references).
User.-grent
Access by name to getgrent and friends.
User::pwent
Access by name to getpwent and friends.

Standard Modules 61
VMS::DCLsym
Perl extension to manipulate DCL symbols. VMS
only.
VMS::Filespec
Converts between VMS and Unix file specification
syntax. VMS only.
VMS::Stdio
Standard I/O functions via VMS extensions. VMS
only.
VMS::XSSymSet
Keeps sets of symbol names palatable to the VMS
linker.

Environment Variables
Perl uses the following environment variables:
HOME Used if chdir has no argument.
LOGDIR
Used if chdlr 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 ofPERL5LD3 if the latter is not defined.

62 Perl 5 Pocket Reference


Multithreading
Multithreading is an experimentalfeature in this release.
Support for multithreading needs to be built into the Perl exe-
cutable.
Multithreading requires the standard module Thread. This
module implements the join, detach, and yield methods dis-
cussed here:
$tbr-> detach
Detach a thread so it ains independently.
I $result = ) Sthr->join
Wait for the thread to complete. The value returned
is the return value from the thread's suhroutine.
lock variable
Lock a resource against concurrent access.
$thr = new Thread sub | args ]
Creates a new thread that starts executing in the ref-
erenced subroutine. The argsure passed to this sub-
routine.
The return value of this subroutine is delivered by
the join method,
yield Explicitly give up the CPU to some other thread.

The Perl Compiler


The Perl Compiler is an experimentalfeature in (bis release.
To compile a Perl program foo.pl with the C backend:
perl -MO=C,-ofoo.c foo.pl
To compile foo.pl with the CC backend:
perl -MO=CC.-ofoo.c foo.pl
Walk the opcode tree in execution order, printing terse infor-
mation about each opcode:
perl -MO=Terse,exec foo.pl

The Perl Compiler 63


Walk the opcode tree in syntax order, printing lengthier
debug information about each opcode:
perl -MO=Debug foo.pl
You can also append ".exec" to walk in execution order.
Produce a cross-reference report of the line numbers at which
all variables, subroutines, and formats are defined and used:
perl -MO=Xref foo.pl

The Perl Debugger


The Perl symbolic debugger is invoked with perl -d.
a [ line 1 command
Sets an action for line.
A Deletes all line actions,
b I line | condition 1 ]
Sets breakpoint at line; default is the current line,
b sitb [ condition )
Sets breakpoint at the named subroutine,
b compile sitbncime
Stop after the subroutine is compiled,
b load file
Sets breakpoint at requireing the given file,
b postpone subname [ condition ]
Sets breakpoint at the first line of the subroutine
after it is compiled,
c f line ]
Continues (until line, or another breakpoint, or exit),
d I line 1
Deletes breakpoint at the given line; default is the
current line.
D Deletes all breakpoints.
(file Switches tofileand starts listing it.
h Prints out a long help message.

64 Perl 5 Pocket Reference


h and Prints out help for the command and.
hh Prints out a concise help message.
H I -number ]
Displays the last -number commands.
1 [ range ]
Lists a range of lines, range may he a number,
start-end, start+amount, or a subroutine name. If
range is omitted, lists next window.
I sub Lists the named subroutine.
L Lists lines that have breakpoints or actions,
m class Prints the methods callable via the given class.
m expr Evaluates the expression in list context, prints the
methods callable on the first element of the result,
n [ expr )
Single steps around the subroutine call.
O I opt [- val \ 1
Sets or queries values of debugger options.
p expr Prints expr.
q Quits. You may also use your | H.or] character,
r Returns from the current subroutine.
R Restarts the debugger,
s I expr 1
Single steps.
S [ ! ] pattern
Lists the names of all subroutines (not) matching the
pattern,
t Toggles trace mode.
t expr Traces through execution of expr.
T Prints a stack trace.
V f package I pattern 1 J
Lists variables matching pattern in A package. Default
package is main.

The Perl Debugger 65


w [ line ]
Lists window around the specified line.
W Deletes all watch-expressions.
W expr Adds a global watch-expression.
x expr Evaluates expr in list context, dumps the result.
X I pattern I
Like V, but assumes current package.
command
Executes command as a Perl statement.
Returns to the executed line.
Lists previous window.
= [ alias value ]
Sets alias, or lists current aliases.
/pattern/
Searches forward for pattern.
^pattern?
Searches backward for pattern.
< command
Sets an action to be executed before every debugger
prompt.
« command
Adds an action to the list of actions to be executed
before every debugger prompt.
> command
Sets an action to be executed after every debugger
prompt,
» command
Adds an action to the list of actions to be executed
after every debugger prompt.
{ cmd Defines a debugger command to run before each
prompt.
\\ cmd Adds a debugger command to the list of debugger
commands to run before each prompt.

66 Perl 5 Pocket Reference


! I ( - \number }
Re-executes a command. Default is the previous
command.
! [ pattern \
He-executes the last command that started with
pattern.
!! [ command )
Runs command in a subprocess.
I cmd Run debugger command cmd through the current
pager.
II cmd Same, temporarily selects DB::OUT as well.
[RETURN! Repeats last s or n.

The Perl Debugger 67


More Titles from 0™»y^Ji
'
Perl

Learning Perl, 2nd Edition Peri Cookbook


by Randal L Schwartz by Tbm Christiansen
& Tom Christiansen & Nathan Tbrtington
2ndEdition July 1997 1st Edition August 1998
ISBN1-56592-284-0 ISBN' 1-56592-24J-3

Programming Perl, Perl in a Nutshell


2nd Edition by Stephen Spuinltour, EII01 Sitter
by Larry Wall, Tbm Christiansen & Nathan Patuanlban
G Randal L Scbtiwlz 1st Edition September 1998
2nd Edition September 19% ISBS 1-56592-2X6-7
ISBN1-56592-149-6

Mastering Algorithms
Advanced Perl Programming with Perl
bySriram Srinirasan by Jon Orutmt, Jorkko llietanieini
1st Edition August 1997 6 John Macdotmld
ISBN 1-56592-2204 1st Edition Sefttember 1998
ISBN 1-56592-398-7

Learning Perl on Win32 Systems


by RandalL Schwartz. Ent Olson Web Client Programming
& Tbm Christiansen with Perl
1st Edition August 1997 by Clinton none
ISBN1-56592-324-3 1st Edition March 1997
ISBN 1-56592-214 X

Mastering Regular Expressions


byJeffrey E />*** CGI Programming on the
1st Edition January 1997 World Wide Web
ISBX'l-56592-257-3 by Sbisbir Gwuknaram
1st Edition March 1996
ISBN 1-56592- 16H-2

O'REILLY"
waw-f 800-998-9938 * order@or8illy.com • http://www.oreilly.com/
OUR PRODUCTS AW A/AHASU HI A SOOKSICPS OR SGI WAM srcsi KM YOU
FOBmrommon: 800-998-9938 * 707-829-0515 • lttto@OTelUy.eom
O'REILLY

Perl 5 Pocket Reference

a 'lliis quick-reference guide to the Perl programming


language pun ides a complete overview of the language,
from variables to input and output, from Bow control to
regular expressions, from functions to document
formats—all packed into a convenient, carry-around booklet.
Included is a summary of Perl syntax rules, a complete list of
standaal library modules with brief descriptions, anil a
precedence table for Perl operators. Updated for Perl Version
5.005, this booklet covers the newest Peri features like enhanced
regular expressions, multithreading, and the Perl compiler.
The Perl 5Pocket Reference \s the perfect companion to Learning
Perl, a carefully paced tutorial course by Randal L. Schwartz, and
Programming Perl, the complete, authoritative reference work
COauthored by Perl developer tany Wall. Tom Christiansen, and
Schwartz.
Johan Vromans has engaged in software engineering research
since 1975. Convinced of the Importance of a good programming
environment, he became an expert in using GNU Kmacs and the
Perl programming language. Also, he was instrumental in
bringing the Internet to the Netherlands as a commercial activity.
He currently owns his own consulting business called Squirrel
Consultancy. He can be reached at JVromansQsquirret.nl

Visit O'Reilly on the Web at www.oreilly.com


US $6.95 J7& Printedon
ISBN 1-56592-495-9 CAN $9.95
90000
9 Recycled Paper

9 781565"924956 6 3692u"92495 M 1

You might also like