残念なコード②を我流で書き直してみた。
sub new {
my $class = shift;
my %par = @_;
my $self;
$self->{ua} = LWP::UserAgent->new(
agent => $par{agent} || 'Mozilla/4.0'
) or return;
$self->{ua}->env_proxy if $par{env_proxy};
$self->{ua}->proxy('http', $par{proxy}) if $par{proxy};
$self->{ua}->timeout($par{timeout}) if $par{timeout};
$self->{host} = $par{host} || 'toolbarqueries.google.com';
bless($self, $class);
}
こんな感じになった。
sub new {
my ($class, $args) = @_;
my $env_proxy = $args->{env_proxy} ? delete $args->{env_proxy} : croak "env_procy is necessary";
my $proxy = $args->{proxy } ? delete $args->{proxy } : croak "procy is necessary";
my $timeout = $args->{timeout } ? delete $args->{timeout } : croak "timeout is necessary";
my $host = $args->{host } ? delete $args->{host } : 'toolbarqueries.google.com';
my $self;
return unless ( $self->{ua} = LWP::UserAgent->new( agent => $par{agent} || 'Mozilla/4.0' ) )
$self->{ua}->env_proxy;
$self->{ua}->proxy('http', $proxy);
$self->{ua}->timeout($timeout);
$self->{host} = $host;
bless $self => $class;
}
使えるならSmart::Args使いたいね。
あ、UserAgentはnewのときに、いっしょに入れてやったほうがいいのかな。
$self->{ua} = LWP::UserAgent->new( agent => $par{agent} || 'Mozilla/4.0',
env_proxy => 1,
timeout => $timeout,
);
0 件のコメント:
コメントを投稿