use LWP::UserAgent;
совпадает с
BEGIN {
require LWP::UserAgent;
import LWP::UserAgent;
}
Если допустимо require LWP::UserAgent;
, это означает, что import
ничего не делает для LWP :: UserAgent.Может быть, смысл использования require
документации состоит в том, чтобы тонко подразумевать это?
Единственное различие между require LWP::UserAgent;
и use LWP::UserAgent;
, таким образом, заключается в том, что require
выполняется.В первом случае это происходит после компиляции всего файла.Для последнего это происходит, как только это утверждение было скомпилировано.С практической точки зрения, нет большой разницы для объектно-ориентированных модулей.
Лично я использую
use LWP::UserAgent qw( );
Это то же самое, что
BEGIN {
require LWP::UserAgent;
}
Таким образом, яЯ гарантированно не импортирую то, что мне не нужно, и я использую знакомые use
, которые я использую для других модулей.