{ package Meteoalarm; sub new { my ($class, %args) = @_; my $self = bless({}, $class); $self->{ua} = _make_ua(); return $self; } sub _make_ua { return LWP::UserAgent->new( ... ); } sub get_warnings { my ($self) = @_; my $ua = $self->{ua}; ... my %by_country; for (...) { ... $by_country{$country} = \%warning; } return \%by_country; } }