doBLOCK
doSUBROUTINE
(LIST
) doEXPR
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.