Mayor1, файлов может быть сколько угодно. Кроме того можно использовать пространства имен (пакеты - package).
my::func();
package my;
sub func
{
print("111\n");
};
Логика работы ф-ий при этом никак не меняется.
Классы в perl == пакеты. Методы - ф-ии в пакете.
Создание объектов базируется на ссылках на встроенные объекты и обработке их bless().
Загрузка модуля выполняется посредством use или require. В первом случае загрузка идет на этапе компиляции, во втором - на этапе исполнения.
Все это есть в манах и книгах. На общие и громоздкие вопросы у меня желания и времени отвечать нет, а на конкретику с удовольствием отвечу.