What is the difference between doing use My::Module
and require My::Module
?
Perl comes with great documentation. Everyone would benefit from reading the entire documentation at least once every few months.
C:\>
perldoc -f require
Otherwise
require
demands that a library file be included if it hasn't already been included. The file is included via the do-FILE mechanism, which is essentially just a variety of eval with the caveat that lexical variables in the invoking script will be invisible to the included code. Has semantics similar to the following subroutine:
... etc. Similarly,
C:\>
perldoc -f use
Imports some semantics into the current package from the named module, generally by aliasing certain subroutine or variable names into your package. It is exactly equivalent to
BEGIN { require Module; Module->import( LIST ); }
except that Module must be a bareword.
... etc
There is also the perlfaq entry although I think it is less informative than the above.