2012-03-06 37 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() sử dụng chính nó get() mẫu LWP::Simple.
Làm cách nào để ghi đè số get() bằng số my_get() trong tập lệnh này?Làm thế nào để ghi đè lên một chức năng được sử dụng trong một phương pháp mô-đun?

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

Trả lời

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

OR, nếu phương pháp get là trên thực tế, khi bạn hàm ý trong câu hỏi, được thừa hưởng từ LWP :: Simple -

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

Hãy chắc chắn rằng bạn nạp module bạn muốn ghi đè trước khi bạn làm điều này, và bạn có thể muốn một 'không có cảnh báo 'định nghĩa lại'. Tôi nói về công cụ này rộng rãi trong _Mastering Perl_. Có cả một chương chỉ là câu hỏi này. :) –

Các vấn đề liên quan