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.