fix uninitialised variable in non-xml installations
[spider.git] / perl / Route.pm
index 387407669583ff325644bbc51d9517d1fc215de6..abd3dcbb74ff5741da45efa13b60ce42b6204d5c 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; 
@@ -208,7 +203,7 @@ sub config
                $call = ' ' x length $call; 
                
                # recursion detector
-               if ((DXChannel->get($self->{call}) && $level > 1) || grep $self->{call} eq $_, @$seen) {
+               if ((DXChannel::get($self->{call}) && $level > 1) || grep $self->{call} eq $_, @$seen) {
                        $line .= ' ...';
                        push @out, $line;
                        return @out;
@@ -286,7 +281,7 @@ sub alldxchan
        my @dxchan;
 #      dbg("Trying node $self->{call}") if isdbg('routech');
 
-       my $dxchan = DXChannel->get($self->{call});
+       my $dxchan = DXChannel::get($self->{call});
        push @dxchan, $dxchan if $dxchan;
        
        # it isn't, build up a list of dxchannels and possible ping times 
@@ -295,7 +290,7 @@ sub alldxchan
                foreach my $p (@{$self->{parent}}) {
 #                      dbg("Trying parent $p") if isdbg('routech');
                        next if $p eq $main::mycall; # the root
-                       my $dxchan = DXChannel->get($p);
+                       my $dxchan = DXChannel::get($p);
                        if ($dxchan) {
                                push @dxchan, $dxchan unless grep $dxchan == $_, @dxchan;
                        } else {
@@ -315,7 +310,7 @@ sub dxchan
        my $self = shift;
        
        # ALWAYS return the locally connected channel if present;
-       my $dxchan = DXChannel->get($self->call);
+       my $dxchan = DXChannel::get($self->call);
        return $dxchan if $dxchan;
        
        my @dxchan = $self->alldxchan;
@@ -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;