require с именем файла предполагает, что мы знаем, какой пакет в результате «придёт» в пространство имён. А если не знаем? Да и почему, собственно, имя файла так уж обязано соответствовать имени пакета хоть в чём-то?
Вместо принудительного установления соответствия между именем файла и полным именем пакета или частью имени хотелось бы использовать 2 более-менее разумных, на мой взгляд, подхода:
1) Подключать плагины по имени пакета, но без необходимости обеспечения соответствия между именем пакета и собственно именем файла (хочется один каталог для плагинов, без всякой вложенности каталогов внутри)
2) Подключать плагины по имени файла без расширения *.pm - и тогда нужно будет как-то понять, что за пакет-то был подключен в итоге, но не парсить же на предмет /^\s*package\s+(\w+)/ ради этого!
Есть ли что-то уже готовое для 1 или 2?
В PHP такие штуки не особо проблемно делаются автозагрузчиками модулей/классов. Для Perl'а что-то в упор не нашёл. Плохо искал?