Perl has a large number of fuNCtions and an even wider range of additional modules each with its own additional fuNCtions. This appendix lists all the standard fuNCtions alphabetically for refereNCe.
Each fuNCtion has been assigned one or more categories to aid you in finding the fuNCtion that you need. This is a very rough categorization, as many fuNCtions might overlap in any category scheme.
For each fuNCtion, the needed parameters are shown. The parameters are described in the text where the meaning is not obvious.
Quite a few of Perl's fuNCtion mirror those available to C programmers under the UNIX system and are at least moderately complicated to use. Please look in the UNIX documentation for additional information if you're interested in the socket, shared memory, or semaphore fuNCtions.
This section listed Perl's fuNCtions by category.
Here is the list of Perl's fuNCtion sorted by name.
Category: Math
Return Value: scalar, the absolute value of
EXPR or $_ if no expression is
specified.
Definition: Calculates an absolute value. For example,
abs(-10) is 10.
Category: Socket
Return Value: SCALAR, the packed address of
the client or false if a problem occurred.
Definition: Accepts a
socket connection from clients waiting for a connection. The
GENERICSOCKET parameter must have already been opened using the
socket() fuNCtion. You can find more information about
accept() in section 2 of the UNIX manual pages.
Category: Process
Return Value: SCALAR, the number of
seconds remaining before the previous alarm was due to go
off.
Definition: Sends a SIGALARM to your script after NUM_OF_SECONDS.
A call with NUM_OF_SECONDS equal to zero caNCels the current alarm. You can find
more information about alarm() in section 3 of the UNIX manual pages.
It is poss-ible for Perl to trap such signals and call specific signal handling
subroutines. See Chapter
13, "Handling Errors and Signals."
alarm(10);
Category: Math
Return Value: SCALAR, the arc tangent of
EXPR or of $_ if no expression is
specified.
Definition: Calculates an arc tangent.
$arcTangent = atan2(60,2);
Category: Socket
Return Value: SCALAR, the socket handle or
false if an error occurred.
Definition: Binds a network address to the
socket handle. You can find more information about bind() in section 2
of the UNIX manual pages.
Category: File
Return Value: SCALAR, true if successful or
undefined if not.
Definition: On systems which distinguish between
text and binary files (like Windows 95 and Windows NT) this fuNCtion forces
binary mode treatment of FILEHANDLE. In systems which do make the
distiNCtion, text files have the end of line characters-carriage return
('\r') and linefeed('\n')-automatically translated into the
UNIX end-of-line character ('\n') when reading from the file and when
writing to the file. Binary mode files do not have this automatic
transformation. See "Example: Binary Files" in Chapter
9 "Using Files," for more information.
open(FILE, "file.dat"); binmode(FILE);
Category: Object
Return Value: SCALAR, a refereNCe to the
blessed object.
Definition: Changes the type of the refereNCed
variable to CLASSNAME. It is used to assign a class name to the
refereNCed variable, thus changing the string returned by the ref()
fuNCtion. If CLASSNAME is not specified, the name of the current
package is used. See Chapter 8, "RefereNCes," for more information.
$temp = { } bless $temp, 'ATMPCLASS'; print("bless() \$temp is now has type ", ref($temp), "\n");
Tip |
Always specify the CLASSNAME parameter if the blessing fuNCtion might be inherited. |
Category: Scope
Return Value: in Scalar Context: SCALAR,
true if the current code has been called as a subroutine (this iNCludes code
which is iNCluded using a require() or an eval() call).
Otherwise, false.
Return Value in Array Context: ARRAY, contains
details of the calling context comprising the package name, file name, and line
of the call.
Definition: This fuNCtion is used to test the current
scope of a subroutine call.
sub testcaller { ($package, $file, $line) = caller; print("caller() Package=$package File=$file Line=$line\n"); } testcaller();
Category: Directory
Return Value: SCALAR, true if
successful, false otherwise.
Definition: Changes the current
directory to the directory specified. If no argument is given changes to the
home directory of the current user.
chdir("/") ? print("It worked.\n") : print("It didn't work.\n");
Category: File, UNIX
Return Value: SCALAR, the number of
files changed.
Definition: MODE is an octal number
representing file permissions which are applied to all the files in
LIST.
chmod(0744, "test1.txt", "test2.txt");
Category: Array, String
Return Value: SCALAR, the number of
characters removed.
Definition: This is a safer alternative than the
chop() fuNCtion for removing characters at the end of strings.
Chomp() only removes characters that correspond to the value of
$/ (the input line separator). It can be given a list of strings upon
which to perform this operation. When given no arguments the chomp operation is
performed on $_.
$temp = "AAAAA!\n"; print("chomp(\$temp) returned ", chomp($temp), ".\n");
Category: Array, String
Return Value: SCALAR, the last
character that was removed.
Definition: This fuNCtion removes the
last character of STRING or the last character of each element in
LIST.
$tmp = "1234"; print("chop(\$tmp) returned ", chop($tmp), "\n");
Tip |
Use chomp() (with $/ set to "\n") rather than chop() if you are not sure that the string has a trailing newline. |
Category: File, UNIX
Return Value: SCALAR, the number of
files successfully changed.
Definition: Changes the ownership of the
files in LIST to the user ID and the group ID specified as parameters.
chown(1, 1, "test1.txt");
Category: String
Return Value: SCALAR, the character
represented by NUMBER.
Definition: Returns the ASCII
character represented by NUMBER. For example, chr(69) is the
letter E. See Appendix E, "ASCII Table" for more information.
Category: File, UNIX
Return Value: SCALAR, true if
successful, false otherwise.
Definition: Changes the root directory
of the current process to DIR_NAME. Which means that a filename like
/john.dat might really refer to /root/users/~jmiller/john.dat.
chroot("/usr/~waters");
Tip |
Your process must have superuser rights in order to successfully use this fuNCtion. It is used to make processes safer by only allowing them access to the subdirectory tree relevant to their purpose. |
Category: File
Return Value: SCALAR, true if the file was
closed correctly, false if not.
Definition: Closes the file opened
with FILEHANDLE. This operation flushes all buffered output. If the
file handle refers to a pipe the Perl program waits until the process being
piped to has finished.
open(FILE, "test1.txt"); # some file activity close(FILE);
Category: Directory, Files
Return Value: SCALAR, true if the
directory was closed correctly, false if not.
Definition: Closes the
directory opened by opendir().
opendir(DIR, "."); # some directory activity closedir(DIR);
Category: Socket
Return Value: SCALAR, true if the
connection was successful, otherwise false.
Definition: Attempts to
connect to a remote socket. NAME must be a packed address of the
correct type for the socket.
Category: Math
Return Value: SCALAR, the cosine of
EXPR or else $_ is used if no expression is
specified.
Definition: Calculates a cosine.
$temp = cos(60);
Category: String
Return Value: SCALAR, an eNCrypted
string.
Definition: ENCrypts TEXT using a key (either
SALT or the first two letters of TEXT).
$eNCyptedString = crypt("Password","TR");
Category: Database
Return Value: SCALAR, true if the close
was successful, false otherwise.
Definition: Undoes the linking of
HASH to a dbm file.
Tip |
This fuNCtion has been superseded by the untie() fuNCtion. |
Category: Database
Return Value: None
Definition:
Links HASH to DATABASE_NAME. If the database does not exist, a
new one with the specified MODE will be created.
Tip |
This fuNCtion has been superseded by the tie() fuNCtion. |
Category: Miscellaneous
Return Value: SCALAR, true if
EXPR has a real value, false otherwise.
Definition: There is
a subtle distiNCtion between an undefined null value and a defined null value.
Some fuNCtions return undefined null to indicate errors, while others return a
defined null to indicate a particular result (use a comparison with the null
string to test for this rather than using defined()).
@iexist = (1,2,3); print("exists.\n") if defined(@iexist); print("does not exist.\n") unless defined(@iexist);
Category: Hash
Return Value: SCALAR, the deleted value or
the undefined value if nothing was deleted.
Definition: Deletes an
entry from an associative array. EXPR is the key for the entry to
delete.
%Hash = ('Jan' => 'One', 'Feb' => 'Two', 'Mar' => 'Three'); delete($Hash{'Jan'});
Category: Process
Return Value: None.
Definition:
Terminates execution of the Perl script, printing LIST to STDERR. The
exit value is the current value of $! which may have been set by a
previous fuNCtion. If $! has a value of zero, $? will be
returned instead. If $? is zero, it exits with an exit value of 255. If
LIST does not end in a newline, the text similar to "at test.pl at line
10" will be appended to the end.
die("Something fatal has happened and the script must die!");
Category: Miscellaneous
Return Value:
None
Definition: Executes the contents of a file as a Perl script. It
is usually used to iNClude subroutines however it has been mostly superseded by
use() and require().
Category: Process, UNIX
Return Value:
None.
Definition: Causes the program to create a binary image or core
dump. You can reload the image using undump program. When reloaded, the program
begins execution from the optional label specified. So it is possible to set up
a program which initializes data structures to dump() after the
initialization so that execution is faster when reloading the dumped image.
Category: Hash
Return Value: ARRAY, an entry (the key-value
pair) in HASH.
Definition: Allows iteration over the entries
in an associative array. Each time it is evaluated, another key-value pair is
returned. When all the entries have been returned, it returns an empty array.
%NumberWord = ('1' => 'One', '2' => 'Two', '3' => 'Three'); while (($key, $value) = each(%NumberWord)) { print("$key: $value\n"); }
Category: Group, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the /etc/group
file used by getgrent() and other group related fuNCtions.
($name, $pw, $gid, @members) = getgrent(); endgrent();
Category: Host, Sockets, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the TCP socket used by
gethostbyname() and host related fuNCtions.
$host = gethostbyname("lyNCh"); endhostent();
Category: Network, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the
/etc/networks file used by getnetent() and network related
fuNCtions.
($name, $aliases, $addrtype, $net) = getnetent(); endnetent();
Category: Protocol, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the
/etc/protocols file used by getprotoent() and protocol related
fuNCtions.
($name, $alias, $protocol) = getprotoent(); endprotoent();
Category: Password, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the /etc/passwd
file used by getpwent() and password related fuNCtions.
($name, $pass, $uid, $gid, $quota, $name, $gcos, $logindir, $shell) = getpwent(); endpwent();
Category: Server, UNIX
Return Value: SCALAR, true if
successful, false if not.
Definition: Closes the
/etc/servers file used by getservent() and related fuNCtions.
($name, $aliases, $port, $protocol) = getservent(); endservent();
Category: File
Return Value: SCALAR, true if the next read
on FILEHANDLE will be at the end of file, false if
not.
Definition: Tests for the end of a file. This is done by reading
the next character and then undoing this operation (so is only suitable on files
where this can be done safely). If no argument is supplied the file tested is
the last file which was read. If the empty list is supplied then a pseudo file
is created of the files listed on the command line. This lets you test for the
end of the last file on the command line.
open(FILE, "test1.txt"); # some file activity print("eof() returned ", eof(FILE) ? "TRUE" : "FALSE", "\n"); close(FILE);
Category: Miscellaneous
Return Value: The undefined value if
a syntax error, a runtime error, or a die() fuNCtion occurs. Otherwise,
the return value is the value of EXPR or the last statement in
BLOCK. The return value can be any type.
Definition: Treats
the expression like a Perl program and executes it. As the context of this
execution is the same as that of the script itself, variable definitions and
subroutine definitions persist. Syntax errors, runtime errors, and execution of
the die() fuNCtion are trapped and an undefined result is returned. If
such an error does occur $@ is set. $@ will be equal to a
defined null string if no errors are found. If no expression is supplied,
$_ is the default argument. If the block syntax is used then the
expressions in the block are evaluated only oNCe within the script (which may be
more efficient for certain situations).
Tip |
eval() traps possible error conditions which would otherwise crash a program and so can be used to test if certain features are available which would cause runtime errors if used when not available. See Chapter 13, "Handling Errors and Signals," for more information. |
$answer = 3; eval("$answer = ;"); if ($@ eq "") { print("eval() returned success.\n"); } else { print("eval() error: $@"); }
Category: Process
Return Value: None.
Definition:
This fuNCtion passes control from the script to an external system command.
There is no return from this call. Note that system() calls
external commands and does return.
exec("cat /etc/motd");
Category: Hash
Return Value: SCALAR, true if EXPR
is an entry in a hash, false if not.
Definition: Tests whether a given
key value exists in an associative array.
%test = ( 'One' => '1', 'Two' => '2'); if (exists($test{'One'})) { print("exists() returned success.\n"); } else { print("exists() returned an error.\n"); }
Category: Process
Return Value: None.
Definition:
Evaluates EXPR and exits the program with that value as the exit code.
The default value for the exit code is 0 if no argument is supplied. If an
END block
has been defined, it will be called. Also, object
destructors may be called before the process truly ends.
exit(16);
Category: Math
Return Value: SCALAR, the natural log base
(e) to the power of EXPR.
Definition: Returns the natural log
base (e) to the power of EXPR. If no parameter is specified,
$_ is used.
print "exp() e**1 is ", exp(1), "\n";
Category: File, UNIX
Return Value:
None.
Definition: In Perl 5 use the fntcl module. In Perl 4
there should be some mechanism for linking the perl fuNCtions to the system
fuNCtions which is usually executed when Perl is installed. See the
perlfuNC man page for more information.
Category: File
Return Value: SCALAR, the file descriptor for
FILEHANDLE.
Definition: Returns the file descriptor given a
file handle. File descriptors are useful when using bitmaps for the
select() fuNCtion.
print("fileno() ", fileno(FILE), "\n");
Category: File
Return Value: SCALAR, true if successful,
false if not.
Definition: Lets you access file locks. You can place
an exclusive lock, place a shared lock, or remove locks. You can find more
information about flock() in section 2 of the UNIX manual pages.
Category: Process UNIX
Return Value: SCALAR, the pid of the
child process or undef is unsuccessful.
Definition: Starts a
child process. Both child and parent processes start executing the line of code
immediately following the fork() call. You can find more information
about fork() in section 2 of the UNIX manual pages.
Category: Miscellaneous
Return Value:
None.
Definition: This internal fuNCtion is used by the format
mechanism. It allows direct manipulation of the format process by adding values
to the format accumulator ($^A). For more information about formats,
see Chapter
11, "Creating Reports."
Category: File, Input
Return Value: SCALAR, the inputted
character. Null if at end of file.
Definition: Returns the next
character FILEHANDLE or STDIN if no filehandle is specified.
open(FILE, "/etc/motd"); print "getc() ", getc(FILE), "\n"; close(FILE);
Category: Group, UNIX
Return Value: in Scalar Context :
Returns the next group name or the undefined value if no more groups or an error
occurred.
Return Value in Array Context : ($name, $passwd, $gid,
$members) or an empty list.
Definition: Returns information about
groups taken from the /etc/group system file. If called repeatedly, it
will iterate through the entries in the /etc/group file.
($name, $pw, $gid, @members) = getgrent(); print("getgrent() Examines /etc/group [$name,$gid] file.\n");
Category: Group, UNIX
Return Value: in Scalar Context: The
next group name that belongs to GID.
Return Value in Array Context: ($name, $passwd, $gid,
$members) or an empty list.
Definition: Returns information about
groups taken from the /etc/group system file.
($grname, $grpw, $gid, @members) = getgrgid(0); print("getgrgid() Returns group name given GID [$grname]\n");
Category: Group, UNIX
Return Value: in Scalar Context: The
next group id that belongs to NAME.
Return Value in Array
Context: ($name, $passwd, $gid, $members) or an empty
list.
Definition: Returns information about groups taken from the
/etc/group system file.
($grname, $grpw, $gid, @members) = getgrnam("root"); print("getgrnam() Returns group GID given name [$gid]\n");
Category: Host, Socket
Return Value: in Scalar Context: Name
of host addressed by ADDRESS or undefined if the host could not be
found.
Return Value in Array Context: ($name,
$aliases, $addrtype, $length, @addrs) or an
empty list.
Definition: Looks in the /etc/hosts system file
or checks a Domain Name Server for a server with ADDRESS. The value for
AF_INIT is always 2.
use Socket; $addr = pack('C4', (140,203,7,103)); ($name, $alias, $addrtype, $length, @addrs) = gethostbyaddr($addr, AF_INET); print("gethostbyaddr() [$alias].\n");
Category: Host, Socket
Return Value: in Scalar Context:
Address of the host called NAME or undefined if the host could not be
found.
Return Value in Array Context: ($name, $aliases, $addrtype,
$length, @addrs) or an empty list.
Definition: Looks in the
/etc/hosts system file or checks a Domain Name Server for a server
called NAME.
($name, $alias, $addrtype, $length, @addrs) = gethostbyname("lyNCh"); print("gethostbyname() [$alias].\n");
Category: Host, UNIX
Return Value: in Scalar Context: Name
of the next host in /etc/hosts. or the undefined value.
Return
Value in Array Context: ($name, $aliases,
$addrtype, $length, @addrs) or an empty
list.
Definition: Looks in the /etc/hosts system file.
($name, $alias, $addrtype, $length, @addrs) = gethostent(); print("gethostent() [$alias].\n");
Category: Process, UNIX
Return Value: SCALAR, the name of
the current login.
Definition: Gets the current login name from the
/etc/utmp system file. Use getpwuid()for more information on
the login because the information stored in /etc/utmp is limited.
print ("getlogin() ", getlogin(), "\n");
Category: Network
Return Value: in Scalar Context: The
network name that has an address of ADDRESS or undefined.
Return
Value in Array Context: ($name, $aliases,
$addrtype, $net) or an empty list.
Definition: Looks
for the network information in the /etc/networks system file.
($addrtype) = (getnetent())[2]; ($name, $alias, $addrtype, $net) = getnetbyaddr($net, $addrtype); print("getnetbyaddr() Reads /etc/networks [$name]\n");
Category: Network
Return Value: in Scalar Context: The
network address of NAME or undefined.
Return Value in Array
Context: ($name, $aliases, $addrtype,
$net) or an empty list.
Definition: Looks for the network
information in the /etc/networks system file.
($name, $alias, $addrtype, $net) = getnetbyname("localnet"); print("getnetbyname() Reads /etc/networks [$name]\n");
Category: Network
Return Value in Scalar Context: The next
network name in /etc/networks or undefined.
Return Value in
Array Context: ($name, $aliases, $addrtype,
$net) or an empty list.
Definition: When called repeatedly,
it iterates over the information in the /etc/networks system file.
($name, $alias, $addrtype, $net) = getnetent(); print("getnetent() Reads /etc/networks [$name, $addrtype]\n");
Category: Sockets
Return Value: SCALAR, the address of the
remote side of a socket connection represented by SOCKET.
Definition: Gets the packed address of the remote side of a socket.
The address can then be used with the unpack() fuNCtion to retrieve the
protocol family, port and ip address values.
$sockaddr = 'S n a4 x8'; $packedRemoteAddr = getpeername(S); ($family, $port, $remoteAddr) = unpack($sockaddr,$packedRemoteAddr);
Category: Groups, Process, UNIX
Return Value: SCALAR, the
current process group for PID. If PID is not specified or 0 is
used, the current group of the current process is returned.
Definition: Finds the current process group for a given pid.
print("getpgrp() ", getpgrp(0), "\n");
Category: Process, UNIX
Return Value: SCALAR, the pid of the
parent process.
Definition: Finds the pid of the parent process.
print("getppid() ", getppid(), "\n");
Category: Process, UNIX
Return Value: SCALAR, the current
priority associated with the parameters.
Definition: Returns the
current priority of WHO (the pid, group pid, uid, or 0 for the current
process). The WHICH parameter can one of PRIO_PROCESS (0),
PRIO_PGGRP (1), PRIO_USER (2).
print("getpriority() ", getpriority(0, 0), "\n");
Category: Protocols, UNIX
Return Value: in Scalar Context:
The protocol number assigned to NAME.
Return Value in Array
Context: ($name, $aliases, $proto) or an empty
list. $proto is the protocol number.
Definition: Looks in the
/etc/protocols system file for the protocol called NAME.
($name, $alias, $proto) = getprotobyname("IP"); print("getprotobyname() /etc/proto [$name, $alias, $proto].\n");
Category: Protocols, UNIX
Return Value: in Scalar Context:
The protocol name associated with NUMBER.
Return Value in Array
Context: ($name, $aliases, $proto) or an empty
list.
Definition: Looks in the /etc/protocols system file for
NUMBER.
($name, $alias, $proto) = getprotobynumber(0); print("getprotobynumber() /etc/protocols [$name, $alias, $proto].\n");
Category: Protocols, UNIX
Return Value: ARRAY.
($name, $aliases, $proto) or an empty
list.
Definition: When called repeatedly, getprotoent()
iterates over the /etc/protocols system file.
($name, $alias, $proto) = getprotoent(); print("getprotoent() Closes /etc/protocols [$name, $alias, $proto].\n");
Category: Password, UNIX
Return Value: in Scalar Context:
The username.
Return Value in Array Context: ARRAY. ($name,
$passwd, $uid, $gid, $quota,
$comment, $gcos, $dir, $shell) or an empty
list.
Definition: When called repeatedly, getpwent() iterates
over the /etc/passwd system file.
($name, $pass, $uid, $gid, $quota, $name, $gcos, $dir, $shell) = getpwent(); print("getpwent() /etc/passwd [$dir, $shell].\n");
Category: Password, UNIX
Return Value: in Scalar Context:
The userid of NAME.
Return Value in Array Context:
($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell) or
an empty list.
Definition: Looks in the /etc/passwd system
file for NAME.
($name, $pass, $uid, $gid, $quota, $name, $gcos, $dir, $shell) = getpwnam("root"); print("getpwnam() /etc/passwd [$dir, $shell].\n");
Category: Password, UNIX
Return Value: in Scalar Context:
The username of UID.
Return Value in Array Context:
($name, $passwd, $uid, $gid,
$quota, $comment, $gcos, $dir,
$shell) or an empty list.
Definition: Looks in the
/etc/passwd system file for UID.
($name, $pass, $uid, $gid, $quota, $name, $gcos, $dir, $shell) = getpwuid(0); print("getpwuid() /etc/passwd [$dir, $shell].\n");
Category: Protocol, Service, Socket, UNIX
Return Value: in
Scalar Context: The port number.
Return Value in Array Context:
($name, $aliases, $port, $proto) or an empty
list.
Definition: Gets services by name. Looks in the
/etc/services system file.
($name, $aliases, $port, $protol) = getservbyname("tcpmux", "tcp");
Category: Protocol, Service, Socket, UNIX
Return Value: in
Scalar Context: The service name.
Return Value in Array Context:
($name, $aliases, $port, $proto) or an empty
list.
Definition: Gets services by port. Looks in the
/etc/services system file.
($name, $aliases, $port, $protol) = getservbyport(512, "tcp");
Category: Protocol, Service, Socket, UNIX
Return Value: in
Scalar Context: The next service name.
Return Value in Array Context:
($name, $aliases, $port, $proto) or an empty
list.
Definition: When called repeatedly, iterates over the
/etc/services system file.
($name, $aliases, $port, $protol) = getservent(); print("getservent() /etc/servers [$name].\n");
Category: Sockets
Return Value: SCALAR, the packed address
of the local end of the socket.
Definition: Finds out the address of
your script's socket.
$packedAddr = getsockname(S); ($family, $port, $localAddr) = unpack('S n a4 x8', $packedAddr);
Category: Sockets
Return Value: SCALAR, the socket option
requested or the undefined value.
Definition: Gets the value of a
specified socket option.
Category: File
Return Value: ARRAY, the list of files
represented by EXPR.
Definition: Looks for file name that
match EXPR. You can use wildcards in EXPR.
@files = glob("*.txt");
Category: Time
Return Value: in Scalar Context: A string
like 'Sat Jul 13 07:34:46 1986' describing EXPR.
Return Value in
Array Context: ($sec, $min, $hour,
$mday, $mon, $year, $wday, $ydat,
$isdst).
Definition: Breaks EXPR (a number of
seconds siNCe 1st Jan 1970) into a 9-element list. If no argument is used the
current time is used. If your system supports POSIX time zones, the time
returned is localized for the Greenwich Mean Time time zone. Note that
$mon ranges from 0..11, $wday ranges from 0..6, and
$year does not handle centuries.
($sec, $min, $hour, $mday, $mon, $year, $wday, $ydat, $isdst) = gmtime(); print "gmtime() 19$year-$mon-$mday\n";
Category: Regular Expressions
Return Value: in Scalar
Context: The number of times that BLOCK or EXPR evaluated to
true.
Return Value in Array Context: A list of the elements of
LIST that causes BLOCK or EXPR to evaluate as true.
Definition: Evaluates the expression or block for each of the
elements in LIST. Think of this fuNCtion as having an internal
foreach loop. Each element in LIST is assigned to $_
and then the block or expression is evaluated. The most common use for this is
with a pattern match operation as the expression, and a list of strings to be
processed. You may be tempted to use grep() as an easy way to interate
over an array as shown in the second example below, don't do this. Use
the map() fuNCtion instead.
# Look for all elements that begin with the letter T. @a = ('One', 'Two', 'Three', 'Four', 'Five'); print("grep(), ", grep(/^T/, @a), "\n"); # Print all elements in a list. @a = ('One', 'Two', 'Three', 'Four', 'Five'); grep( print("$_\n"), @a);
Category: Math, String
Return Value: SCALAR, the decimal
value of EXPR.
Definition: Converts EXPR from
hexadecimal to decimal. For example, hex('FF0') will return
'4080'. You can use the string returned as a number because Perl will
automatically convert strings to numbers in numeric contexts.
print("hex() ", hex("ff"), "\n");
Category: Miscellaneous
Return Value: None.
Definition: This is the only user-defined fuNCtion in this list. If a
module has an import() fuNCtion then the use() fuNCtion will
call it as the module is being loaded. You can use the import()
fuNCtion to initialize variables, open files, or do any other setup work.
Category: String
Return Value: SCALAR, the position of the
first occurreNCe of SUBSTRING in STRING at or after
POSITION or -1 if not found.
Definition: When called
repeatedly, you can iterate over all the occurreNCes of SUBSTRING in
STRING. The returned value is an offset from $[ (which is
normally zero). If $[ is altered it will change the way
index() works as it will start its search from $[ if no
position argument is supplied, and it will return $[ - 1 when there is
no match found.
$answer1 = index("abcdefghijiklmdef:-)", "def"); $answer2 = index("abcdefghijiklmdef", "def", $answer1 + 3); print("index() def is at $answer1 and next at $answer2\n");
Category: Math
Return Value: SCALAR, the integer portion of
EXPR.
Definition: Chops of any fractional part of
EXPR or $_ if no expression is specified.
For example,
int(21.45) would return 21.
print("int() ", int(345.678), "\n");
Category: File, UNIX
Return Value: SCALAR, true if
successful; false if not and the undefined value in some
cases.
Definition: Controls Input/Output operations, mainly used for
terminals. It calls the UNIX ioctl() fuNCtion with the specified
parameters. Returns undefined if the operating system returns -1. Returns string
"0 but true" if the operating system returns 0. Otherwise returns the value
returned by the operating system. You can find more information about
ioctl() in section 2 of the UNIX manual pages.
Category: Array, String
Return Value: SCALAR, a string with
each element of LIST alternating with
EXPR.
Definition: CoNCatenates all of the elements of
LIST together with EXPR as the glue. For example,
join('!', ('QQ', 'AA')) will return 'QQ!AA'.
@listone = (0, 1, 2, 3); print("join() ", join("-",@listone), "\n");
Category: Array, Hash
Return Value: in Scalar Context: The
number of keys and, therefore, the number of entries in HASH.
Return Value in Array Context: All of the keys to HASH in no
particular order.
Definition: Gets a list of all keys in
HASH. The returned list is ordered by the internal storage
requirements, so it is often useful to use the sort() fuNCtion before
processing. For example, sort(keys(%hash)).
%hash = ('One' => 1, 'Two' => 2, 'Three' => 3, 'Four' => 4); print("keys() ", join("-", keys(%hash)), "\n");
Category: Process
Return Value: SCALAR, the number of
processes successfully signaled.
Definition: Sends SIGNAL to
the processes identified by LIST. If SIGNAL is negative then
process groups are killed instead.
Category: String
Return Value: SCALAR, a copy of
EXPR with all letters in lowercase.
Definition: Creates a
copy of EXPR with all letters in lowercase.
print("lc() ", lc("ABCDef"), "\n");
Category: String
Return Value: SCALAR, a copy of
EXPR with the first letter in lowercase.
Definition: Creates
a copy of EXPR with the first letter in lowercase.
print("lcfirst() ", lcfirst("ABCDef"), "\n");
Category: String
Return Value: SCALAR, the number of
characters in EXPR.
Definition: Determines the numbers of
characters in EXPR. If no expression is supplied $_ is used.
print("length() ", length("01234"), "\n");
Category: File, UNIX
Return Value: SCALAR, true if
successful or false if not.
Definition: Creates a hard link called
NEW_FILE linking to the filename called OLD_FILE.
print("The result from link() is ", link("/usr/local", "/tmp/link"), "\n");
Category: Socket
Return Value: SCALAR, true if successful or
false if not.
Definition: Listens for connections on a socket.
QUEUESIZE specifies how many processes can wait for connections.
Category: Scope
Return Value: None.
Definition:
Makes all the variables in LIST to be local to the current block. The
my() fuNCtion is better than local() because it also creates
new copies of the variables for each recursive call of a subroutine. Don't use
local() inside loops. Variables marked using local() can be
seen by fuNCtions called from inside the current block.
local($numTires) = 10;
Category: Time
Return Value: in Scalar Context: A string
like 'Sat Jul 13 07:34:46 1986' describing EXPR.
Return Value in
Array Context: ($sec, $min, $hour,
$mday, $mon, $year, $wday, $ydat,
$isdst).
Definition: Breaks EXPR (a number of
seconds siNCe 1st Jan 1970) into a 9-element list. If no argument is used the
current time is used. If your system supports POSIX time zones, the time
returned is localized for the current time zone. Note that $mon ranges
from 0..11, $wday ranges from 0..6, and $year does not handle
centuries. If no expression is specified, the current time is used.
($sec, $min, $hour, $mday, $mon, $year, $wday, $ydat, $isdst) = localtime(); print("localtime() 19$year-$mon-$mday\n");
Category: Math
Return Value: SCALAR, the logarithm (using
the natural logarithm base e) of EXPR or $_ if no expression
is specified.
Definition: Determines the logarithm (using the natural
logarithm base e) of the expression.
print("log() ", log(2.5), "\n");
Category: File, UNIX
Return Value: ARRAY, ($device,
$inode, $mode, $nlink, $uid, $gid,
$rdev, $size, $atime, $mtime,
$ctime, $blksize, $blocks) or an empty list if an
error occurs.
Definition: Gets the file statistics of a symbolic link
rather that the file pointed to the link. If the parameters do not refer to a
symbolic link, the file statistics are still returned. Note that, like the
filetest operators, lstat() can take the special underscore filehandle
(_) which means that the test is carried out on the same filehandle as the last
filetest, stat() or lstat() call.
($device, $inode, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = lstat("/tmp/link"); print("lstat() $device, $inode, $ctime \n");
Category: Array
Return Value: ARRAY, a list of the results
of evaluating BLOCKor EXPR which each element of LIST
being assigned to $_.
Definition: Evaluates the specified
expression (or block) for each element of LIST. This is done by
assigning each element to $_ and evaluting the expression (or block) in
an array context. Therefore, the returned array may have more elements than
LIST.
# INCrement each element by one. @array = (0..3); @result = map($_ + 1, @array); print("Before map: @array\n"); print("After map: @result\n"); # Print all elements in a list. @array = ('One', 'Two', 'Three', 'Four', 'Five'); map( print("$_\n"), @array);
Category: Directory
Return Value: SCALAR, true if successful
or false if not.
Definition: Creates a directory call
DIRNAME, with the mode specified by MODE. The mode is
specified using an octal number and is ignored under Windows 95 or Windows NT.
If the directory can't be created, $! is set to the operating system
error.
print("mkdir() ", mkdir("testdir", 0777), "\n");
Category: Inter-process Communications, Message Queues
Return
Value: SCALAR, true if successful; false if not and the undefined value in
some cases.
Definition: Controls message queue operations. It calls
the UNIX msgctl() fuNCtion with the specified parameters. Returns
undefined if the operating system returns -1. Returns string "0 but true" if the
operating system returns 0. Otherwise returns the value returned by the
operating system. You can find more information about msggctl() in
section 2 of the UNIX manual pages.
Category: Inter-process Communication, Message Queue
Return
Value: SCALAR, the message queue id or the undefined value if an error
occurred.
Definition: Determines the message queue id.
Category: Inter-process Communication, Message Queue
Return
Value: SCALAR, true if successful or false if not.
Definition:
Gets a message from QUEUE_ID. The message is placed into
BUFFER.
Category: Inter-process Communication, Message Queue
Return
Value: SCALAR, true if successful or false if not.
Definition:
Send a message to QUEUE_ID. The message to be sent should be in
BUFFER.
Category: Scope
Return Value: None.
Definition:
Declares each of the variables listed to be local to the lexical unit (block or
file). See Chapter
5 "FuNCtions," for more information.
# Define the fuNCtion foo with four local variables. sub foo { my($numTires) = shift; my(@params) = @_; my($tireType, $tirePressure); }
Category: Math, String
Return Value: SCALAR, the decimal
value of EXPR.
Definition: Converts EXPR from octal
to decimal. For example, oct('0760') will return '496'. You
can use the string returned as a number because Perl will automatically convert
strings to numbers in numeric contexts.
print("oct() ", oct("88"), "\n");
Category: File
Return Value: SCALAR, true if the file is
opened, false otherwise.
Definition: Opens a file using the specified
file handle. The file handle may be an expression, the resulting value is used
as the handle. If no filename is specified a variable with the same name as the
file handle used (this should be a scalar variable with a string value referring
to the file name). The special file name '-' refers to STDIN and
'>-' refers to STDOUT.
The file name string may be prefixed with the following values to indicate
the mode:
Prefix Value | Description |
|
read access, this is the default |
|
write access |
|
create a file with read/write accesss |
|
read/write access to an existing file |
|
append to a file |
|
Execute CMD as an operating system command and pipe the resulting output back to your Perl script as FILEHANDLE |
|
Pipe output to FILEHANDLE into CMD |
$FILE = "foo.dat" open(FILE) or die("Unable to open $FILE because: $!");
Category: Directory
Return Value: SCALAR, true if the
directory is opened, false otherwise.
Definition: Opens a connection
between the directory handle and the directory name. If you use an expression
for the second parameter, it is expected to evaluate to a directory name.
$dir = "/tmp" opendir(DIR, $dir) or die("Unable to open $dir because $!");
Category: String
Return Value: SCALAR, the numeric value of
the first character of EXPR or $_ if no expression is
specified.
Definition: Returns the numeric ascii code of the first
character in the expression. For example, ord('A') returns a value of
65. print("ord() ", ord('G'), "\n");
Category: String
Return Value: SCALAR, a packed version of
the data in LIST using TEMPLATE to determine how it is
coded.
Definition: Converts LIST into a data
structure-possibly packed with binary information. You can find additional
information by looking at the perfuNC man page, the perlfuNC.htm file in your
docs directory, or by pointing your web browser to
ftp://ftp.metronet.com/pub/perl/doc/manual/html/perlfuNC/pack.html. You
can use any of the following specifiers in the template string.
|
Description |
|
Null fill to absolute position. |
|
Ascii string with spaces to pad. |
|
Ascii string with nulls to pad. |
|
Bit string (ascending bit order). |
|
Bit string (descending bit order). |
|
Signed char value. |
|
Unsigned char value. |
|
Double-precision float in the native format. |
|
Single-precision float in the native format. |
|
Hex string (low nybble first). |
|
Hex string (high nybble first). |
|
Signed integer value. |
|
Unsigned integer value. |
|
Signed long integer value. |
|
Unsigned long integer value. |
|
Short integer "network" order. |
|
Long integer "network" order. |
|
Pointer to a null-terminated string. |
|
Pointer to a structure (fixed-length string). |
|
Signed short integer value. |
|
Unsigned short integer value. |
|
UUeNCoded string. |
|
Short integer "VAX" (little-endian) order. |
|
Long integer "VAX" (little-endian) order. |
|
Null byte. |
|
Back up a byte. |
A coNCise form of template can be used by appending a number after any letter to repeat that format specifier. For example, a5 indicates that five letters are expected. b32 indicates that 32 bits are expected. H8 indicates that 8 nybbles ( or 4 bytes) are expected. P10 indicates that the structure is 10 bytes long. Using a * in place of a number means to repeat the format specifier as necessary to use up all list values. Note that some packed structures may not be portable across machines (in particular network and floating point formats). It should be possible to unpack the data using the same format specification with an unpack() call.
Use Socket; @address = (140, 203, 7, 103) $addr = pack('C4', @address); print("@address is packed as: $addr\n");
Category: Inter-process Communication
Return Value: SCALAR,
true if successful, false if not.
Definition: Opens a pair of
connected pipes.
Category: Array
Return Value: SCALAR, the last element in
the specified array.
Definition: Removes the last element from the
specified array. Note that the array will be shortened by one.
@a = (1, 2, 3, 4); print("pop() ", pop(@a), "leaves ",@a, "\n");
Category: Regular Expression
Return Value: SCALAR, the
position of the last matched substring of the last m//g
operation.
Definition: Used to find the offset or position of the last
matched substring. If SCALAR is specified, it will return the offset of
the last match on that scalar variable. You can also assign a value to this
fuNCtion (for example, pos($foo) = 20;) in order to change the starting
point of the next match operation.
$name = "alpha1 alpha2 alpha3 alpha4"; $name =~ m/alpha/g; print("pos() ", pos($name), "\n");
Category: Output
Return Value: SCALAR, true if successful or
false otherwise.
Definition: Prints LIST to the file
represented by FILEHANDLE. If no file handle is specified
STDOUT will be used. This default file handle may be altered using the
select() operator. If no list argument is specified $_ is
printed.
# This example may look funny, but it works. Go ahead and # try it! # print(" returns ", print("print()"), " on success.\n"); # # The inside print() fuNCtion is evaluated first, then the # outer print() fuNCtion is evaluated.
Category: Output
Return Value: SCALAR, true if successful or
false otherwise.
Definition: Uses format specifiers to print
LIST in specific ways. If no file handle is specified, STDOUT
is used. For more information, see "Example: Printing Revisited," in Chapter
9 "Using Files."
printf("printf() An integer printed with leading zeroes %05d.\n", 9);
Category: Array
Return Value: SCALAR, the number of elements
in the new array.
Definition: Appends the elements in LIST to
the end of the specified array.
# Find out how any elements are in @array. This works because # you are essentially appending an empty array. @array = ('A'..'R'); print("There are ", push(@array), "elements.\n"); @array = ( 1, 2 ); print("There are ", push(@array, (3, 4, 5)), "elements.\n");
Category: String
Return Value: SCALAR, a single-quoted
string.
Definition: q() can be used instead of single quotes.
This is not really a fuNCtion, more like an operator, but you'll probably look
here if you see it in another programmer's program without remembering what it
is. You can actually use any set of delimiters, not just the parentheses.
print(q(This is a single quoted string without interpolation), "\n");
Category: String
Return Value: SCALAR, a double-quoted
string.
Definition: qq() can be used instead of double
quotes. This is not really a fuNCtion, more like an operator, but you'll
probably look here if you see it in another programmer's program without
remembering what it is. You can actually use any set of delimiters, not just the
parentheses.
print(qq(This is a double quoted string with interpolation\n));
Category: Regular Expression, String
Return Value: SCALAR, a
string with all meta-characters escaped.
Definition: Escapes all
meta-characters in EXPR. For example, quotemeta("AB*..C")
returns "'AB\*\.\.C".
print quotemeta("AB*\n[.]*");
Category: Array, String
Return Value: ARRAY, a list
consisting of the element of LIST evaluated as if they were
single-quoted.
Definition: qw() is a quick way to specify a
lot of little single-quoted words. For example, qw(foo, bar, baz) is
equivalent to 'foo', 'bar', 'baz'. Some programmers feel that using
qw makes Perl scripts easier to read. This is not really a fuNCtion,
more like an operator, but you'll probably look here if you see it in another
programmer's program without remembering what it is. You can actually use any
set of delimiters, not just the parentheses.
@array = qw(This is a list of words without interpolation);
Category: String
Return Value: SCALAR, the return value from
the executed system command.
Definition: qx() is an
alternative to using back-quotes to execute system commands. For example,
qx(ls -l) will execute the UNIX ls command using the
-l command-line option. This is not really a fuNCtion, more like an
operator, but you'll probably look here if you see it in another programmer's
program without remembering what it is. You can actually use any set of
delimiters, not just the parentheses.
# summarize disk usage for the /tmp directory # and store the output of the command into the # @output array. # @output = qx(du -s /tmp);
Category: Math
Return Value: SCALAR, a random number between
0 and EXPR or between 0 and 1 if no expression is
specified.
Definition: Generates random numbers. The value of
EXPR should be positive (use the abs() fuNCtion if needed). As
the fuNCtion calls a pseudo random generator, it generates the same sequeNCe of
numbers unless the initial seed value is altered with srand().
# print a random number between 0 and 10. print("rand(), ", rand(10), "\n");
Category: File, Input
Return Value: SCALAR, the number of
bytes read or the undefined value.
Definition: Reads, or attempts to
read, LENGTH number of bytes from the file associated with
FILEHANDLE into BUFFER. If an offset is specified, Perl will
start reading the file from that point. For example, an offset of 100 will cause
Perl to bypass the first 100 bytes of the file.
sub readFile { my($buffer) = ""; open(FILE, "/etc/services") or die("Error reading file, stopped"); read(FILE, $buffer, 10); print("read() $buffer\n"); close(CLOSE) }
Category: Directory, Files
Return: Value in Scalar Context:
The name of the next file in the directory connected to DIRHANDLE.
Return Value in Array Context: A list containing all of the files in
the directory connected to DIRHANDLE.
Definition: Reads
directory entries.
opendir(DIR, "/tmp"); @file = readdir(DIR); print("readdir() @files\n");
Category: File, UNIX
Return Value: SCALAR, the value of the
symbolic link represented by EXPR or $_ if no expression is
specified. The undefined value is returned if an error
arises.
Definition: Gets the value of a symbolic link. System errors
are returned $!.
Category: Sockets
Return Value: SCALAR, the address of the
sender or the undefined value.
Definition: Places information from a
socket into a buffer.
Category: Miscellaneous
Return Value: SCALAR, the data type
of EXPR.
Definition: Gets the data type of a variable. For
example, 'ARRAY', 'CODE', 'GLOB', 'HASH',
'REF', or 'SCALAR' might be returned. If a variable was
blessed with the bless() fuNCtion, then the new data type will be
returned. The new data type will normally be a class name.
$foobar = { }; bless($foobar, 'ATMPCLASS'); print("ref() \$foobar is now in class ", ref($foobar), "\n";
Category: File
Return Value: SCALAR, true if successful,
false if not.
Definition: Changes the name of a file. You can use
this fuNCtion to change the directory location of a file as long as you don't
cross file-system boundaries.
print("rename() returned ", rename("/tmp/test", "/tmp/test2"), "\n");
Category: Regular Expression
Return Value: SCALAR, always
returns true.
Definition: This a way of resetting variables in the
current package (especially pattern match variables). The expression is
interpreted as a list of single characters. All variables starting with those
characters are reset. Hyphens may be used to specify ranges of variables to
reset. If called without any argument it simply resets all search matches.
Variables that have been declared using the my() fuNCtion will not be
reset.
reset('R'); reset('d-f'); reset();
Caution |
Using reset() can reset system variables you may not want to alter-like the ARGV and ENV variables. |
Category: Array, String
Return Value in Scalar Context: A
string with characters of the first element of LIST
reversed.
Return Value in Array Context: The elements of LIST
in reverse order.
Definition: Reverses the order of a string or list.
No sorting is done, the list or string is simply reversed.
@array = (1, 2, 3); print("reverse() ", reverse(@array), "\n");
Category: Directory
Return Value:
None.
Definition: Lets you start reading directory entries all over
again.
# Open the current directory opendir(DIR, "."); # Print all of the directory entries. print("1st Time: "); map( print("$_ ") , readdir(DIR)); print("\n"); # Print message verifying that there are # no more directory entries to read. print("The last file has already been read!\n\n") unless readdir(DIR); # Go back to the beginning. rewinddir(DIR); # Print all of the directory entries again. print("2nd Time: "); map( print("$_ ") , readdir(DIR)); print("\n"); closedir(DIR);
Category: String
Return Value: SCALAR, the position of the
last occurreNCe of SUBSTRING in STRING at or before
POSITION or -1 if not found.
Definition: When called
repeatedly, you can iterate over all the occurreNCes of SUBSTRING in
STRING. The returned value is an offset from $[ (which is
normally zero). If $[ is altered it will change the way
index() works as it will start its search from $[ if no
position argument is supplied, and it will return $[ - 1 when there is
no match found.
$answer1 = rindex("abcdefghijiklmdef", "def"); # use the first position found as the offset to the next search. # note that the length of the target string is subtracted from # the offset to save time. $answer2 = rindex("abcdefghijiklmdef", "def", $answer1 - 3); print("rindex() \"def\" is at $answer1 and next at $answer2\n");
Category: Directory
Return Value: SCALAR, true if successful
or false if not. $! is set if the directory could not be
deleted.
Definition: Tries to delete the specified directory. The
directory must be empty of all files, symbolic links, and sub-directories.
Category: Miscellaneous
Return Value: SCALAR, the value of
EXPR in a scalar context.
Definition: Forces the argument to
be interpreted in a scalar context, rather than as a list. For example,
scalar(@array) will return the number of elements in @array.
$numElements = scalar(@array);
Category: File
Return Value: SCALAR, true if successful or
false if not.
Definition: Moves to a specified position in a file.
You can move relatively to the beginning of the file (WHENCE = 0), the
current position (WHENCE = 1), or the end of the file (WHENCE
= 2). This fuNCtion is mainly used with fixed length records to randomly access
specific records of the file.
Category: Directory
Return Value:
None.
Definition: Allows the position in a directory to be reset to a
position saved with telldir(). This is useful when processing
directories with readdir().
Category: File
Return Value: SCALAR, the currently selected
filehandle.
Definition: Changes the default file handle used for the
print() and write() fuNCtions. By default, STDOUT is
selected, but this fuNCtion can select any other file handle to be the default
instead. The return value is the currently selected file handle (before any
change) so it is useful to assign this to a variable in order to be able to
restore the original handle as the default at a later stage.
open(FILE,">t.out"); $oldHandle = select(FILE); print("This is sent to /tmp/t.out.\n"); select($oldHandle); print("This is sent to STDOUT.\n"); # Here is an advaNCed example which selects an alternate # file handle and restores it in one step. The secret is the # use of parentheses to create a list out of the return values # of the statements evaluated by the comma operator. open(FILE, ">t.out"); select((select(FILE), print("This is sent to t.out.\n"))[0]); print("This is sent to STDOUT.\n");
Category: File, Socket, UNIX
Return Value in Scalar Context: The number of ready descriptors that
were found-usually referred to as $nfound.
Return Value in Array
Context: ($nfound, $timeleft)-The number of ready descriptors and
the amount of time left before a timeout happends.
Definition:
Examines file descriptors to see if they are ready or if they have exception
conditions pending.
Category: Inter-process Communication
Return Value: SCALAR,
true if successful; false if not and the undefined value in some
cases.
Definition: Controls operations on semaphores.
Category: Inter-process Communication
Return Value: SCALAR,
a semaphore id or undefined if an error occurs.
Definition: Finds the
semaphore associated with KEY.
Category: Inter-process Communication
Return Value: SCALAR,
true if successful or false if not.
Definition: Performs semaphore
operations like signaling and waiting.
Category: Socket
Return Value: SCALAR, the number of
characters sent or the undefined value if an error
occurred.
Definition: Sends the information in a buffer to a socket.
If the socket is not connected, you can specify a destination using the
TO parameter.
Category: Group, UNIX
Return Value:
None.
Definition: Rewinds the /etc/group file to the start of
the file for subsequent accesses using getgrent().
Category: Host, UNIX
Return Value:
None.
Definition: Determines if name server queries use UDP datagrams
(STAYOPEN = 0) or if the socket connection to the name server should
stay open (STAYOPEN = 1). This affects fuNCtions like
gethostbyname().
sethostent(1);
Category: Network, UNIX
Return Value:
None.
Definition: Rewinds the /etc/networks file used by
getnetent() and other network related fuNCtions. If STAYOPEN
has a value of 1 then the file is kept open between calls to
getnetbyname() and getnetbyaddr().
setnetent(1);
Category: Group, UNIX
Return Value: SCALAR, true if
successful or false if not.
Definition: Sets the current process
group for the specified process. If PID is zero, the current process
group for the current process is set.
Category: Process, UNIX
Return Value: SCALAR, true if
successful or false if not.
Definition: Sets the current priority of
WHO (the pid, group pid, uid, or 0 for the current process, group or
user). The WHICH parameter can one of PRIO_PROCESS (0),
PRIO_PGGRP (1), PRIO_USER (2). The priority is a number
representing the level of priority (normally in the range 120 to 20) where the
lower the priority the more favorable the scheduling of the process by the
operating system.
print("setpriority() ", setpriority(0, 0, -20), "\n");
Category: Protocol
Return Value: SCALAR, true if successful
or false if not.
Definition: Rewinds the /etc/protocols file
used by getprotoent() and other protocol related fuNCtions. If
STAYOPEN has a value of 1 then the file is kept open between calls to
getprotobyname() and getprotobynumber().
setprotoent(1);
Category: Password, UNIX
Return Value: SCALAR, true if
successful or false if not.
Definition: Rewinds the
/etc/passwd file used by getpwent() and other password related
fuNCtions.
setpwent();
Category: Services, UNIX
Return Value: SCALAR, true if
successful or false if not.
Definition: Rewinds the
/etc/services file used by getservent() and other service
related fuNCtions. If STAYOPEN has a value of 1 then the file is kept
open between calls to getservbyname() and getservbyport().
setservent(1);
Category: Socket
Return Value: SCALAR, true if successful or
false if not.
Definition: Sets socket options.
Category: Array
Return Value: SCALAR, the first element of
ARRAY or the undefined value if the specified array is empty. If no
array is specified, @ARGV will be used in the mail program and
@_ will be used in fuNCtions.
Definition: Takes the first
element from the specified array and returns that, reducing the array by one
element.
@array = (1..5); while ($element = shift(@array)) { print("$element - "); } print("\n");
Category: Inter-process Communication
Return Value: SCALAR,
true if successful; false if not and the undefined value in some
cases.
Definition: Controls shared memory.
Category: Inter-process Communication
Return Value: SCALAR,
the id of a shared memory segment or the undefined value if an error
occurred.
Definition: Finds the id of a shared memory segment.
Category: Inter-process Communication
Return Value: SCALAR,
true if successful or false if not.
Definition: Reads information
from a shared memory segment.
Category: Inter-process Communication, Shared Memory
Return
Value: SCALAR, true if successful or false if not.
Definition:
Writes information from a shared memory segment.
Category: Socket
Return Value: SCALAR, true if successful or
false if not.
Definition: Shuts down the connection to a socket. If
HOW = 0, all iNComing information will be ignored. If HOW = 1,
all outgoing information will stopped. If HOW = 2, then both sending
and receiving is disallowed.
Category: Math
Return Value: SCALAR, the sine of
EXPR in radians or the sine of $_ if no expression was
specified.
Definition: Calculates the sine of the expression in
radians.
$temp = sin(4);
Category: Process, UNIX
Return Value: SCALAR, the number of
seconds spent sleeping.
Definition: Causes the current process to
sleep for the number of seconds specified (if none specified it sleeps forever,
but may be woken up by a SIGALRM signal if this has been programmed).
sleep(5);
Category: Socket
Return Value: SCALAR, true if successful or
false if not.
Definition: Opens a specific type of socket.
Tip |
When using socket(), make sure that you have the statement use Socket; at the top of your file so that the proper definitions get imported. |
Category: Socket
Return Value: SCALAR, true if successful or
false if not.
Definition: Creates an unnamed pair of the specified
type of sockets in the specified domain.
Category: Array
Return Value: ARRAY, a copy of LIST
in sorted order.
Definition: Sorts the specified list. SiNCe a
copy of the original list is sorted, you must assigned the returned array
to a variable in order to save the sorted order. The sort method can be
specified with the optional fuNCtion or block parameter. A fuNCtion may be
specified which takes two arguments (passed as the variables $a and
$b) and returns true if the first is less than or equal to the second
by any sort of criteria used. Similarly a code block can be specified
(effectively an anonymous fuNCtion) to perform this fuNCtion. The default sort
order is based on the standard string comparison order. You can look at the web
page http://www.perl.com/perl/everything_to_know/sort.html for an
extensive discussion of sorting techniques.
@array = ("z", "w", "r", "i", "b", "a"); print("sort() ", sort(@array), "\n");
Category: Array
Return Value: ARRAY, a list of the elements
removed from ARRAY.
Definition: Removes the specified
elements (LENGTH elements starting at OFFSET) from the
specified array, replacing them with the elements in LIST if needed. If
no length is specified all the items from offset to the end of the array are
removed.
# Replace the first three elements with capitalized # versions. @array = ("a", "e", "i", "o", "u"); @removedItems = splice(@array, 0 , 3, ("A", "E", "I"));
Category: Array, Regular Expression
Return Value in Scalar
Context: Not recommended, but it returns the number of fields found and
stored the fields in the @_ array.
Return Value in Array
Context: A list of fields found in EXPR or $_ if no
expression is specified.
Definition: Splits a string expression into
fields based on the delimiter specified by PATTERN. If no pattern is
specified whitespace is the default. An optional limit restricts the number of
elements returned. A negative limit is the same effect as no limit. This
fuNCtion is often used in conjuNCtion with join() to create small text
databases.
@fields = split(/:/, "1:2:3:4:5");
Category: String
Return Value: SCALAR, a formatted text
string.
Definition: Uses format specifiers to format the elements of
LIST in specific ways.
$text = sprintf("%0d \n", 9);
Category: Math
Return Value: SCALAR, the square root of
EXPR or $_ if no expression is
specified.
Definition: Calculates square roots.
$result = sqrt(4);
Category: Math
Return Value: None.
Definition:
Sets the seed used by the pseudo random number generation algorithm when
generating random numbers via rand(). In order to randomize the
possible sequeNCes the seed should be set to a different value each time the
script is called. When no expression is supplied the default behavior is to use
the current system time. This is not a secure method of randomizing for scripts
which needs to be secure as it is possible to predict what sequeNCe the script
will return.
Tip |
It is possible to generate exactly the same data repeatedly (without having to save the entire sequeNCe) simply by setting and saving the seed. Restoring the seed and calling rand() will then produce the same sequeNCe again. |
srand(26); print("Here's a random number: ", rand(), ".\n"); srand(26); print("Here's the same random number: ", rand(), ".\n");
Category: File
Return Value: ARRAY, ($device,
$inode, $mode, $nlink, $uid, $gid,
$rdev, $size, $atime, $mtime,
$ctime, $blksize, $blocks).
Definition:
Returns the file statistics of the file pointed to by the file handle (or a
filename produced by evaluating expression). Note that, like the filetest
operators, stat() can use the special underscore filehandle (_) which
means that the test is carried out on the same filehandle as the last filetest,
stat() or lstat() call.
($device, $inode, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat("/etc/passwd"); print("stat() $device, $inode, $ctime\n");
Category: Regular Expression
Return Value:
None.
Definition: Sets up internal lookup tables based on the string
studied so that pattern matching operations can use this information to process
the pattern match more quickly. When many pattern match operations are being
performed on the same string, the efficieNCy of these patterns can be improved
by the use of the study() fuNCtion. If no string is specified the
$_ is studied by default. Only one string at a time can be studied
(subsequent calls effectively forget about the previously studied string). Thus
is often used in a loop processing, where each line of a file is studied before
being processed with various pattern matches.
Category: String
Return Value: SCALAR, a substring of
EXPR.
Definition: Gets a substring from EXPR,
starting from OFFSET for LEN characters or until the end of
the specified string. If the offset is negative it starts from the right hand
side of the string instead of the left hand side. If the length is negative, it
means to trim the string by that number of characters.
$temp = substring("okay", 2);
Category: File, Symbolic Link
Return Value: SCALAR, true if
successful or false if not.
Definition: Creates a symbolic link from
the existing file to the new file.
symlink("/usr/local", "/tmp/symlink_to_usr_local");
Category: Miscellaneous, UNIX
Return Value:
None.
Definition: Lets Perl call corresponding UNIX C system calls
directly. It relies on the existeNCe of the set of Perl header files
syscall.ph which declared all these calls. The script h2ph which is
normally executed when Perl is installed sets up the syscall.ph files.
Each call has the same name as the equivalent UNIX system call with the "SYS_"
prefix. As these calls actually pass control to the relevant C system, fuNCtion
care must be taken with passing parameters.
The first element in the list used as an argument to syscall() itself is the name corresponding to the UNIX system call (i.e. with the "SYS_" prefix). The next elements in the list are interpreted as parameters to this call. Numeric values are passed as the C type int. String values are passed as pointers to arrays. The length of these strings must be able to cope with any value assigned to that parameter in the call.
require(""syscall.ph"); syscall(&SYS_getpid);
Category: File
Return Value: SCALAR, true if successful or
false if not.
Definition: Open a file using the underlying operating
system's open() fuNCtion. The values for MODE and
PERMISSIONS are system-dependent. You may be able to look in the
Fcntl module for more information.
Category: File, Input
Return Value: SCALAR, the number of
bytes read or the undefined value if an error occurred.
Definition:
Tries to read LENGTH bytes into BUFFER. The OFFSET
parameter is used to change where in the file the data is read.
Caution |
This fuNCtion, along with syswrite(), bypasses the standard low-level input/output fuNCtions that other Perl fuNCtions use. Therefore, sysread() and syswrite() should be mixed with other types of input and output fuNCtions. |
Category: Process
Return Value: SCALAR, the exit code of the
system command that was executed.
Definition: Executes LIST
as an operating system call. The process to execute this command is forked and
the script waits for the child process to return.
Note |
To capture the output from a system call use a back-quoted string instead of system(). |
system("ls -F /var > /tmp/t.tmp");
Category: File, Output
Return Value: SCALAR, the number of
bytes written or the undefined value if an error occurred.
Definition:
Tries to write LENGTH bytes from BUFFER. The OFFSET
parameter is used to change where in the file the data is written.
Caution |
This fuNCtion, along with syswrite(), bypasses the standard low-level input/output fuNCtions that other Perl fuNCtions use. Therefore, sysread() and syswrite() should be mixed with other types of input and output fuNCtions. |
Category: File
Return Value: SCALAR, the current position in
the file associated with FILEHANDLE or in the last file accessed if no
filehandle is specified.
Definition: Gets the current position in a
file.
$filePos = tell(FILE);
Category: Directory
Return Value: SCALAR, the current
position in the directory associated with DIRHANDLE.
Definition: Gets the current directory position. This value can only
be used by the seekdir() fuNCtion.
opendir(DIR, "/tmp"); readdir(DIR); print("telldir() ", telldir(DIR), "\n");
Category: Miscellaneous
Return Value: SCALAR, a refereNCe to
an object.
Definition: Binds a variable to a package class. The
creates an instaNCe of this class using the classes' new() method. Any
parameters for the new() method may be specified in LIST.
The behavior depends on the way the package class is written, and on the type of variable. Most common are package classes written to support associative arrays. In particular, package classes exist to bind associative arrays to various databases.
The tie() mechanism has the effect of hiding all the complexities of implementation behind a simple interface. For example, the records in a database can be accessed by looking at the associative array bound to the database.
The example here uses the Configure.pm module. This module stores the information about the machine on which Perl has been installed. It is possible to bind an associateive array to this class and examine this to find out the value of any of the configuration parameters.
use Configure; $return = tie %c, Configure; print("tie() returned \"$return\" and a sample value is $c{installbin}\n");
Category: Miscellaneous
Return Value: SCALAR, a refereNCe to
an object previously bound via tie() or the undefined value if
VARIABLE is not tied to a package.
Definition: Returns a
refereNCe to the object which the variable is an instaNCe of. This is the same
object as was returned by the original call to tie() when it was bound.
Category: Time
Return Value: SCALAR, the time in seconds
siNCe January 1, 1970.
Definition: Gets the current time. You can use
gmtime(time()) or localtime(time()) to access the different
elements of time-day, month, etc…
$then = time(); # time passes while code is running. $now = time(); $elaspedTime = $now - $then;
Category: Process, UNIX
Return Value: ARRAY,
($usertime, $systemtime, $childsystem,
$childuser).
Definition: Gets a list of four elements
representing the amount of time used by the current and child processes.
($usertime, $systemtime, $childsystem, $childuser) = times(); print("times() $usertime $systemtime $childsystem $childuser\n");
Category: File
Return Value: SCALAR, true if successful or
false if not.
Definition: TruNCates the file refereNCed by
FILEHANDLE or named by EXPR to LENGTH.
Category: String
Return Value: SCALAR, a copy of
EXPR with all letters in uppercase.
Definition: Creates a
copy of EXPR with all letters in uppercase.
print("uc() ", uc("abcdEF"), "\n");
Category: String
Return Value: SCALAR, a copy of
EXPR with the first letter in uppercase.
Definition: Creates
a copy of EXPR with the first letter in uppercase.
print("ucfirst() ", ucfirst("abcdEF"), "\n");
Category: Process, UNIX
Return Value: SCALAR, the old
process umask.
Definition: Gets and/or sets the process file mask.
Returns the old umask so that it can be stored and restored later if required.
If called without any arguments returns the current umask. This is the UNIX
mechanism used to modify the permissions of any files created.
print("umask() The current umask is: ", umask(), "\n");
Category: Miscellaneous
Return Value: SCALAR, the undefined
value.
Definition: Undefines the value of EXPR. The
expression may be a scalar, an array or a subroutine (specified with a
& prefix).
Category: File
Return Value: SCALAR, the number of files
successfully deleted.
Definition: Deletes the files in LIST.
unlink("/tmp/t.tst", "/tmp/t.bak");
Category: Array, String
Return Value in Scalar Context: The
first item unpacked from EXPR.
Return Value in Array Context:
A list of element produced from EXPR.
Definition: Unpacks
data using the same template mechanism as pack() to specify the format
of the data in EXPR.
Category: Array
Return Value: SCALAR, the number of elements
in ARRAY after LIST has been prefixed to
it.
Definition: Adds LIST to the front of ARRAY.
@array = qw(a, b, c); print("unshift() Array has ", unshift(@array, 1, 2, 3), " elements: @array\n");
Category: Miscellaneous
Return Value:
None.
Definition: Breaks the binding between a variable and a package.
Category: Time
Return Value: SCALAR, the number of files
successfully changed.
Definition: Sets the access and modification
times of all the files in LIST to the times specified by the first two
parameters. The time must be in the numeric format (for example, seconds siNCe
January 1, 1970).
utime(time(), time(), "/tmp/t.tst");
Category: Array, Hash
Return Value in Scalar Context: The
number of values and, therefore, the number of entries in HASH.
Return Value in Array Context: All of the values in HASH in
no particular order.
Definition: Gets a list of all values in
HASH. The returned list is ordered by the internal storage
requirements, so it is often useful to use the sort() fuNCtion before
processing. For example, sort(values(%hash)).
%hash = ('One' => 1, 'Two' => 2, 'Three' => 3, 'Four' => 4); print("keys() ", join("-", values(%hash)), "\n");
Category: String
Return Value: SCALAR, the value of the bit
field specified by OFFSET.
Definition: Uses the string
specified EXPR as a vector of unsigned integers. The NUMBITS
parameter is the number of bits that are reserved for each entry in the bit
vector. This must be a power of two from 1 to 32. Note that the offset is the
marker for the end of the vector, and it counts back the number of bits
specified to find the start. Vectors can be manipulated with the logical bitwise
operators |, & and ^.
$vec = ''; vec($vec, 3, 4) = 1; # bits 0 to 3 vec($vec, 7, 4) = 10; # bits 4 to 7 vec($vec, 11, 4) = 3; # bits 8 to 11 vec($vec, 15, 4) = 15; # bits 12 to 15 # As there are 4 bits per number this can # be decoded by unpack() as a hex number print("vec() Has a created a string of nybbles, in hex: ", unpack("h*", $vec), "\n");
Category: Process, UNIX
Return Value: SCALAR, the process id
of the child process that just ended or -1 if there are no child
processes.
Definition: Waits for a child process to end.
Category: Process, UNIX
Return Value: SCALAR, the process id
of the child process that just ended or -1 if there is no such
process.
Definition: Waits for a specified child process to end. The
flags can be set to various values which are equivalent to those used by the
waitpid() UNIX system call. A value of 0 for FLAGS should work
on all operating systems that support processes.
Category: Miscellaneous
Return Value: SCALAR, true if the
currently executing fuNCtion is looking for a list value or false if it is
looking for a scalar value.
Definition: Used to return two
alternatives from a subroutine, depending on the calling context. You can use
wantarray() inside fuNCtions to determine the context in which your
fuNCtion was called.
sub foo { return(wantarray() ? qw(A, B, C) : '1'); } $result = foo(); # scalar context @result = foo(); # array context print("foo() in a scalar context: $result\n"); print("foo() in an array context: @result\n");
Category: Output
Return Value: None.
Definition:
Prints LIST to STDERR, like die(), but doesn't cause the
script to exit or raise an exception. If there is no newline in the list,
warn() will append the text "at line <line number>\n" to
the message. However, the script will continue after a warn().
warn("Unable to calculate value, using defaults instead.\n");
Category: File, Output
Return Value:
None.
Definition: Writes a formatted record to the file handle (or the
file handle which the expression evaluates to). If no file handle is specified,
the default is STDOUT, but this can be altered using select()
if necessary.
A format for use by that file handle must have been declared using a format statement. This defaults to the name of the file handle being used, but other format names can be associated with the current write() operation by using the $~ special variable.