You are correct in what require does: it loads the given module at runtime. use when applied to a package name is equivalent to
BEGIN
{
require <package>
import <package> [<arguments>]
}
The BEGIN wrapper is what makes the statement execute when it is encountered. Perl loads eveything found in a BEGIN subblock before all other code in that block. The real difference is the import function, which is defined by the package itself (usually through inheriting from
Exporter). import is responsible for taking functions and variables defined in that package and importing them to the calling package's namespace. So in your example, import takes the
get function defined in LWP::Simple and imports it to the main package... so that now you no longer need the fully qualified name. Make sense?
Hope this helps,
-Ton
-----
Be bloody, bold, and resolute; laugh to scorn
The power of man...