将怪物Perl模块重构为子模块的好方法是什么?
发布时间:2020-12-15 21:49:14 所属栏目:大数据 来源:网络整理
导读:我有一个项目的Perl模块.我可能有十几个程序挂起来,其中很多都是垃圾.我以前没有和DBI花费太多个人时间,所以这部分是可以修复的,但最重要的是它很大.字面上2KLOCs. 很容易将这个函数(我们称之为Dumb.pm)分解为单独的模块(Dumb :: FormTools,Dumb :: Database
我有一个项目的Perl模块.我可能有十几个程序挂起来,其中很多都是垃圾.我以前没有和DBI花费太多个人时间,所以这部分是可以修复的,但最重要的是它很大.字面上2KLOCs.
很容易将这个函数(我们称之为Dumb.pm)分解为单独的模块(Dumb :: FormTools,Dumb :: Database等),除了我说的,有很多程序已经使用了Dumb; “ 我想通过Dumb导出Dumb :: Database的可导出函数,而不必一遍又一遍地改变它: sub my_dumb_function { return Dumb::Database::my_dumb_function( @_ ) ; } 并不是说我高于那个.只是这似乎是处理问题的愚蠢和不雅的方式.我曾经使用过“不要不知道更好”的借口,而且一次真的比你得到的还要多.救命? 解决方法
不知道你当前是如何使用它的(它当前是否导出方法?),但你可以设置新的子模块以允许你导入它们的函数(使用Exporter),然后让原始模块显式导入现在已经破坏的出碎片.就像是:
package Dumb; use Dumb::Database qw(my_dumb_function); 1; package Dumb::Database; use base qw(Exporter); our @EXPORT_OK = qw(my_dumb_function); sub my_dumb_function { 1; } 1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |