do
BLOCK
do
SUBROUTINE
(
LIST
)
do
EXPR
The
do
BLOCK
form executes the
sequence of commands in
the
BLOCK
, and returns the value of the last
expression evaluated in the block.
When modified by a loop modifier, Perl
executes the
BLOCK
once before testing the loop
condition. (On other statements the loop modifiers test the
conditional first.)
The
do
SUBROUTINE
(
LIST
)
is a deprecated form of a subroutine
call. See "Subroutines" in
Chapter 2
.
The
do
EXPR
form uses the value of
EXPR
as a filename and executes the contents of the file
as a Perl script.
Its primary use is (or rather was) to include subroutines from a
Perl subroutine library, so that:
do 'stat.pl';
is rather like:
eval `cat stat.pl`;
except that it's more efficient, more concise, keeps track of the current
filename for error messages, and searches all the directories listed
in the
@INC
array.
(See the section on "Special Variables" in
Chapter 2
.)
It's the same, however, in that it does reparse the file every time
you call it, so you probably don't want to do this inside a loop.
Note that inclusion of library modules is better done with the
use
and
require
operators, which also do error checking
and raise an exception if there's a problem.