Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将怪物Perl模块重构为子模块的好方法是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个项目的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;

大佬总结

以上是大佬教程为你收集整理的将怪物Perl模块重构为子模块的好方法是什么?全部内容,希望文章能够帮你解决将怪物Perl模块重构为子模块的好方法是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。