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.