У меня возникают проблемы с выяснением, как структурировать модули Perl объектно-ориентированным способом, чтобы у меня мог быть один родительский модуль с число подмодулей и только конкретные необходимые подмодули будут загружены вызывающим скриптом. Например, я хочу иметь возможность вызывать методы следующим образом:
use Example::API;
my $api = Example::API->new();
my $user = {};
$user->{'id'} = '12345';
$api->Authenticate();
$user->{'info'} = $api->Users->Get($user->{'id'});
$user->{'friends'} = $api->Friends->Get($user->{'id'});
С точки зрения структуры файлов, я бы хотел, чтобы модули были настроены следующим образом или в любой структуре, необходимой для правильной работы:
api.pm
users.pm
friends.pm
...
Причина, по которой я хочу сделать это в первую очередь, заключается в том, что если кто-то просто хочет пройти аутентификацию по API, ему не нужно загружать все остальные модули. Точно так же, если кто-то просто хочет получить информацию о пользователе, ему не нужно загружать модуль friends.pm, только users.pm
. Я был бы признателен, если бы вы предоставили необходимый пример кода Perl для настройки каждого модуля, а также объяснили, как должна быть настроена структура файла. Если я делаю все это неправильно, чтобы выполнить то, что я пытаюсь выполнить, я был бы признателен за объяснение лучшего способа сделать это и некоторый пример кода о том, как это должно быть настроено. Пользовательский интерфейс может быть объединен с использованием этого шаблона, цепочки методов и т. д.
Спасибо за чтение.