代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

我应该把两个Perl模块通用的代码放在哪里?

  •  2
  • Aakash Goel  · 技术社区  · 14 年前

    例如,

    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 这样代码就不会重复了?

    1 回复  |  直到 14 年前
        1
  •  9
  •   DVK    14 年前

    我想用最简单的方法解决。

    创建第三个模块Common.pm或Helpers.pm或MyUtils.pm—在其中存储所有通用样板助手子例程。

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

    use -ing Commmon.pm-实际上 继承

    实际上,我们是通过一个大型项目来实现的,从BaseClass.pm或BaseClassPlus.pm(它的子类)中对几乎100%的模块进行子分类。工作得很好,并且由于样板文件明显较少,所以对可维护性很好的代码非常有帮助。(我有一种感觉,我们可以和Moose一起完成大部分的工作,但那是在我知道驼鹿存在之前)