|Pathologically Eclectic Rubbish Lister|
What's the difference between require and use?by faq_monk (Initiate)
|on Oct 08, 1999 at 00:29 UTC||Need Help??|
Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
Perl offers several different ways to include code from one file into another. Here are the deltas between the various inclusion constructs:
1) do $file is like eval `cat $file`, except the former: 1.1: searches @INC and updates %INC. 1.2: bequeaths an *unrelated* lexical scope on the eval'ed code.
2) require $file is like do $file, except the former: 2.1: checks for redundant loading, skipping already loaded files. 2.2: raises an exception on failure to find, compile, or execute $file.
3) require Module is like require "Module.pm", except the former: 3.1: translates each "::" into your system's directory separator. 3.2: primes the parser to disambiguate class Module as an indirect object.
4) use Module is like require Module, except the former: 4.1: loads the module at compile time, not run-time. 4.2: imports symbols and semantics from that package to the current one.
In general, you usually want use and a proper Perl module.