Внутренне use pack2 ('whom');
переводится в нечто вроде
BEGIN {
require pack2;
pack2->import('whom');
}
За исключением того, что perl проверит, может ли он вызвать import
на pack2
, прежде чем попытаться вызвать его.В вашем примере нет пакета с именем pack2
, поэтому нет функции import
для вызова.Если имя вашего пакета и имя файла совпадают, тогда Perl найдет функцию import
, предоставленную Exporter
.
. Нет предупреждения об этом, потому что Perl трудно сказать, когда это было сделано намеренно.Большинство модулей OO не экспортируют никакие функции или переменные и поэтому не имеют функции import
.