如何将函数继承到对象中并允许从给定对象中使用它们?

时间:2011-09-19 19:07:36

标签: perl

我无法将这个问题用于更好的词汇,但我怎么能做到这样的事情:

FileSpecClone.pm
package FileSpecClone;
use File::Spec::Unix;

sub new() {
bless {};
}

CloneScript.pl
use FileSpecClone;
$obj = FileSpecClone->new();
# A FileSpec::Unix subroutine
$obj->catpath('a','b','c');

1 个答案:

答案 0 :(得分:3)

您必须通过设置包FileSpecClone变量来指定File::Spec::Unix应继承@ISA的方法。

package FileSpecClone;
use File::Spec::Unix;
our @ISA = qw(File::Spec::Unix);
...

perlobj中记录了这一点。

如果你有parent模块(自v5.10以来的核心模块),那将在编译时处理设置@ISA的细节。 (HT:daxim)

use parent 'File::Spec::Unix';