У меня есть модуль Perl для проекта. У меня на нем висит с десяток программ, и многие из них — мусор. Раньше я не проводил много личного времени с DBI, так что эту часть можно исправить, но важно то, что она большая. Буквально 2KLOC.
Было бы легко разбить эту функцию (назовем ее Dumb.pm) на отдельные модули (Dumb::FormTools, Dumb::Database и т. д.), за исключением того, что, как я уже сказал, существует множество программ, которые уже «используют Dumb»; '
Я хотел бы экспортировать экспортируемые функции Dumb::Database через Dumb без необходимости иметь вариации этого снова и снова:
sub my_dumb_function { return Dumb::Database::my_dumb_function( @_ ) ; }
Дело не в том, что я выше этого. Просто это кажется глупым и неэлегантным способом решения проблемы. Однажды я использовал оправдание «Не знаю ничего лучше», и один раз действительно больше, чем вы можете получить. Помощь?
import
вDumb
, которая направляет вызовыimport
в различные дочерние модули. - person daotoad   schedule 28.01.2010*my_dumb_function = \&Dumb::Database::my_dumb_function
Почти то же самое делает Экспортер. - person Brad Gilbert   schedule 29.01.2010