gpt4 book ai didi

perl - 我应该在哪里放置两个 Perl 模块共有的代码?

转载 作者:行者123 更新时间:2023-12-05 00:55:37 25 4
gpt4 key购买 nike

我正在创建几个 Perl 模块,它们将使用打开和关闭文件的通用实用程序。

例如,

mod1.pm

my $in, $out;

sub openf {
my $fname = shift;
open $in, "<", $fname or die $!;
}

sub one {
openf($path);
...
}

mod2.pm

my $in, $out;

sub openf {
my $fname = shift;
open $in, "<", $fname or die $!;
}

sub two {
openf($path);
...
}

现在,我应该把 openf 放在哪里,这样代码才不会重复?

最佳答案

我会说采用最简单的解决方案。

制作第三个模块,Common.pm 或 Helpers.pm 或 MyUtils.pm - 将所有常见的样板帮助程序子例程存储在那里。

然后您将从上面的两个模块以及其他任何地方导入它。

一种略有不同的方法是 - 而不是简单地使用-ing Commmon.pm - 实际上继承您的所有模块。这样他们就可以根据需要以面向对象的方式扩展通用工具。

我们实际上是在一个大型项目中这样做的,从 BaseClass.pm 或 BaseClassPlus.pm 中继承了几乎 100% 的模块,这是它的子类。由于样板文件明显减少,因此工作得非常好并且非常有助于维护良好的代码。 (我觉得我们可以用 Moose 完成大部分工作,但那是在我什至不知道 Moose 存在之前)

关于perl - 我应该在哪里放置两个 Perl 模块共有的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4144351/

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