gpt4 book ai didi

perl - 将一个大模块分成多个文件

转载 作者:行者123 更新时间:2023-12-02 07:41:14 25 4
gpt4 key购买 nike

抱歉,我原来的问题似乎无法正确解释我在做什么和我想要实现的目标。这是一个更新的问题。

这可能是最简单的问题,但我找不到任何答案。

我有一个很大的 Perl 模块(比如 ABC.pm),随着我们添加新功能,它每天都在增长。这些功能中的大多数(几乎 90%)发送请求并处理响应。这是一个此类请求的一些代码。

sub UserDeleteRequest
{
my ($self, $inputParam) = @_;
my $config = $self->getConfig();
return $self->_doRequest (REQUEST => 'UserDeleteRequest',
PARAM => $inputParam));
}

与此类似,编写了其他功能,并随着我们添加新请求而不断增长。

拥有一个大文件变得越来越难以维护。因此,我正在寻找一些最佳实践来使这更容易。我想到的一个想法是将这个大模块拆分成多个文件(如何??)

最佳答案

听起来你应该创建一个抽象类,你可以让其他类继承和覆盖它。以您相当模糊的示例为例,您的模块可能如下所示:

use strict;
package Foo;

sub new {

my $class = ref(shift) || shift;
my $self = {};
bless( $self, $class );

return $self;

}

sub processFooRequest {
...
}

sub processFooResponse {
...
}

您可能会有一个子类 Foo::Web,它可能看起来像这样:

use strict;
package Foo::Web;
use base "Foo";

sub processFooWebRequest {
...
}

sub processFooWebResponse {
...
}

在这种情况下,我没有费心使用新的构造函数,因为它继承自 Foo。我可以让这些方法具有相同的名称,它们将简单地覆盖——实际上这可能是我应该做的——保持名称相同但改变内部功能。 Foo 中定义的任何其他方法都将被继承。

真的你应该看看perlmod .一旦您开始理解它及其各种链接,您可能想看看 Moose .

关于perl - 将一个大模块分成多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com