use base somemodule;

# 相当于以下两句的结合:

BEGIN{
    use somemodule ();
    push @ISA, qw(somemodule);
}

# 也可以同时 use base 两个或者两个以上的模块,即多继承,例如:

use base qw(Foo Bar);

BEGIN {
    use Foo ();
    use Bar ();
    push @ISA, qw(Foo Bar);
}
  • Perl 里 类方法通过 @ISA 数组继承,这个数组里面包含其他包(类)的名字,变量的继承必须明确设定。
  • 多继承就是这个 @ISA 数组包含多个类(包)名字。
  • 通过 @ISA 只能继承方法不能继承数据

参考文献

最后修改:2021 年 08 月 25 日
如果觉得我的文章对你有用,请随意赞赏