Пишу программу на Перле, хочу в ней реализовать плагины в виде модулей, так чтобы их можно было подключать с помощью use MyProg::Plugins::НазваниеЗадача найти все такие модули, сделать для каждого "use" и выцепить нужные подпрограммы и данные. Второе и третье делается легко, а вот первое не очень. Решение в лоб:
- Просматриваем все пути в массиве @INC на предмет существования в них каталогов MyProg/Plugins. Запоминает пути ко всем таким каталогам.
- В каждом из найденных каталогов ищем файлы *.pm и имена этих файлов складываем в массив, пропуская дубликаты.
- Список готов. Приводим все найденные имена к виду MyProg::Plugins::Название. Дальше - use и дело техники.
Чутьё программиста подсказывает, что я изобретаю велосипед. Нельзя ли подобную схему устроить как-нибудь поизящнее, какими-нибудь стандартными или известными приёмами? Буду благодарен за любые ссылки по теме.