Настройка структуры модуля Perl

У меня возникают проблемы с выяснением, как структурировать модули 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 для настройки каждого модуля, а также объяснили, как должна быть настроена структура файла. Если я делаю все это неправильно, чтобы выполнить то, что я пытаюсь выполнить, я был бы признателен за объяснение лучшего способа сделать это и некоторый пример кода о том, как это должно быть настроено. Пользовательский интерфейс может быть объединен с использованием этого шаблона, цепочки методов и т. д.

Спасибо за чтение.

5
задан Community 23 May 2017 в 10:33
поделиться