2012-03-06 8 views
7
#!/usr/bin/env perl 
use warnings; 
use 5.012; 
use utf8; 

use WWW::Mechanize::Cached; 
use Some::Module qw(some_method); 

my $url = '...'; 
my $result = some_method($url); 

some_method()get() फॉर्म LWP::Simple का उपयोग करता है।
मैं इस स्क्रिप्ट में my_get() के साथ get() कैसे ओवरराइट कर सकता हूं?मॉड्यूल-विधि में उपयोग किए गए फ़ंक्शन को ओवरराइट कैसे करें?

sub my_get { 
    my $url; 
    my $mech = WWW::Mechanize::Cached->new(); 
    $mech->get($url); 
    my $content = $mech->content(format => 'text'); 
    return $content; 
} 

उत्तर

10
sub WWW::Mechanize::Cached::get { 
    # your code 
} 

या, यदि get विधि, वास्तव में है के रूप में आप प्रश्न में नहीं दिखाते, LWP से प्राप्त होती है :: सरल -

sub LWP::Simple::get { 
    # your code 
} 
+1

सुनिश्चित करें कि आप मॉड्यूल आपको ओवरराइड करना चाहते से लोड करना ऐसा करने से पहले, और आप 'चेतावनी' को फिर से परिभाषित नहीं कर सकते हैं। मैं _Mastering Perl_ में बड़े पैमाने पर इस सामान के बारे में बात करता हूं। इस सवाल पर एक पूरा अध्याय है। :) –

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

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