【发布时间】:2010-01-28 17:42:28
【问题描述】:
我有一个项目的 Perl 模块。我可能有十几个程序挂在上面,其中很多都是垃圾。我之前没有在 DBI 上花费太多私人时间,所以这部分是可以修复的,但重要的是它很大。字面意思是 2KLOC。
将这个函数(我们称之为 Dumb.pm)分解成单独的模块(Dumb::FormTools、Dumb::Database 等)很容易,但正如我所说,有很多程序已经使用哑巴;'
我想通过 Dumb 导出 Dumb::Database 的可导出函数,而不必一遍又一遍地修改它:
sub my_dumb_function { return Dumb::Database::my_dumb_function( @_ ) ; }
这并不是说我在上面。只是这似乎是处理问题的愚蠢和不雅的方式。我曾经用过一次“不知道没有更好”的借口,而且一次真的比你得到的要多。帮忙?
【问题讨论】:
-
我没有时间写一个正确的答案,但是您可以在
Dumb中使用自定义的import函数,它将对import的调用路由到各个子模块。 -
只有 2k LOC?哇,一个不错的小模块! ;)
-
...然后是我在上一份工作中继承的 7K 提交日志的 14K 怪物...
-
*my_dumb_function = \&Dumb::Database::my_dumb_function这几乎就是 Exporter 所做的。
标签: perl perl-module