tidy up prefix handling
[spider.git] / perl / Route.pm
index 387407669583ff325644bbc51d9517d1fc215de6..0f52e39b4023285ad994ad533feb18d66ad11f19 100644 (file)
@@ -68,14 +68,9 @@ sub new
        dbg("create $pkg with $call") if isdbg('routelow');
 
        # add in all the dxcc, itu, zone info
-       my @dxcc = Prefix::extract($call);
-       if (@dxcc > 0) {
-               $self->{dxcc} = $dxcc[1]->dxcc;
-               $self->{itu} = $dxcc[1]->itu;
-               $self->{cq} = $dxcc[1]->cq;
-               $self->{state} = $dxcc[1]->state;
-               $self->{city} = $dxcc[1]->city;
-       }
+       ($self->{dxcc}, $self->{itu}, $self->{cq}, $self->{state}, $self->{city}) =
+               Prefix::cty_data($call);
+
        $self->{flags} = here(1);
        
        return $self; 
@@ -380,7 +375,6 @@ sub field_prompt
 #
 sub AUTOLOAD
 {
-       my $self = shift;
        no strict;
        my $name = $AUTOLOAD;
        return if $name =~ /::DESTROY$/;
@@ -390,10 +384,9 @@ sub AUTOLOAD
 
        # this clever line of code creates a subroutine which takes over from autoload
        # from OO Perl - Conway
-       *$AUTOLOAD = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}};
-       &$AUTOLOAD($self, @_);
+       *{$AUTOLOAD} = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}};
+       goto &$AUTOLOAD;
 
-#    @_ ? $self->{$name} = shift : $self->{$name} ;
 }
 
 1;