2016-01-30 4 views
5

मैं hOCR सामग्री को संभालने के लिए HTML::Element के शीर्ष पर hOCR::Element पैकेज लिख रहा हूं। तदनुसार, hOCR::Element वर्ग की एक वस्तु HTML::Element से संबंधित सभी विधियों को प्राप्त करती है।सभी विरासत विधियों को उपclass वस्तुओं को वापस कैसे करें?

लेकिन वहाँ के रूप में 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; 

कैसे मैं एक उपवर्ग इस तरह से अपने आधार वर्ग से सभी तरीकों के वारिस है कि उन प्रासंगिक तरीकों लौट उपवर्ग आधार वर्ग वस्तुओं के बजाय वस्तुओं, एक आवरण लिखने के बिना हो सकता है ऐसी प्रत्येक मूल विधि के लिए?

+1

आप एक [ 'AUTLOAD'] (http://perldoc.perl.org/perlsub.html#Autoloading) सबरूटीन लेखन के बजाय' एचटीएमएल :: Element' से इनहेरिट विचार कर सकते हैं, लेकिन यह एक छोटे से बदसूरत है – Borodin

+0

धन्यवाद। क्या यह सिर्फ बदसूरत होगा या क्या मुझे बाद में असली परेशानी हो सकती है? –

+0

मुझे कोई आश्चर्य नहीं दिख रहा है – Borodin

उत्तर

-2
sub look_down { 
    my $self = shift; 
    return bless $self->SUPER::look_down (@_) ,HTML::Element ; 
} 
+1

ओपी एक समाधान के लिए पूछता है * "प्रत्येक ऐसी मूल विधि के लिए एक रैपर लिखने के बिना" * – Borodin

संबंधित मुद्दे