我正在HTML::Element
之上编写hOCR::Element
个包来处理hOCR内容。因此,hOCR::Element
类中的对象继承了属于HTML::Element
的所有方法。
但是,由于HTML::Element
(例如find_by_tag_name
和look_down
)中有许多返回HTML::Element
个对象的基本方法,我认为自己必须为每个这样的方法是一个相应的hOCR::Element
包装器方法,只需将hOCR
作为HTML
给出的内容进行祝福。
例如:
package hOCR::Element;
use HTML::Element;
use parent 'HTML::Element';
sub new {
my ($class, %params) = @_;
my $self = $class->SUPER::new (%params);
return bless $self, $class;
}
sub look_down {
my $self = shift;
return map { bless $_, 'hOCR::Element' } $self->SUPER::look_down (@_);
}
1;
如何让子类继承其基类中的所有方法,使得这些相关方法返回子类对象而不是基类对象,而不必为每个这样的父方法编写包装器?
答案 0 :(得分:-2)
sub look_down {
my $self = shift;
return bless $self->SUPER::look_down (@_) ,HTML::Element ;
}