2012-03-06 17 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); 

El some_method() se usa a sí mismo get() formulario LWP::Simple.
¿Cómo podría sobreescribir el get() con mi my_get() en este script?¿Cómo sobrescribir una función utilizada en un método de módulo?

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

Respuesta

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

O, si el método get es en realidad, como se da a entender en la cuestión, se hereda de LWP :: Simple -

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

Asegúrese de cargar el módulo que desea anular antes de hacer esto, y es posible que desee un 'sin advertencias 'redefinir''. Hablo de esto ampliamente en _Mastering Perl_. Hay un capítulo completo sobre esta pregunta. :) –

Cuestiones relacionadas