Socket::inet_atonをoverrideするとLWPに特化せずにより汎用的になるのではと思って、
それらしきものを書いてみた。
ただし、Socket::inet_atonがexportされる前にuseしなければいけないので、
実用性はあまり高くなさげ。
https://github.com/karupanerura/p5-Net-DNS-Hosts
以下のコードは$scopeが生きている間、Socket::inet_atonをoverrideしてwww.cpan.orgの向き先を127.0.0.1に変えている。
use Net::DNS::Hosts; use LWP::UserAgent; my $scope = Net::DNS::Hosts->scope( 'www.cpan.org' => '127.0.0.1' ); # override request hosts with peer addr defined above my $ua = LWP::UserAgent->new; my $res = $ua->get("http://www.cpan.org/"); print $res->content; # is same as "http://127.0.0.1/" content