#
# Copyright (c) 1998 - Dirk Koopman G1TLH
#
-# $Id$
+#
#
package Bands;
use DXUtil;
use DXDebug;
use DXVars;
-use Carp;
use strict;
use vars qw(%bands %regions %aliases $bandsfn %valid);
%bands = (); # the 'raw' band data
%regions = (); # list of regions for shortcuts eg vhf ssb
%aliases = (); # list of aliases
-$bandsfn = "$main::data/bands.pl";
+
+$bandsfn = localdata("bands.pl");
%valid = (
+ band => '0,BAND,parraypairs',
+ beacon => '0,BEACON,parraypairs',
cw => '0,CW,parraypairs',
- ssb => '0,SSB,parraypairs',
data => '0,DATA,parraypairs',
- sstv => '0,SSTV,parraypairs',
+ fax => '0,FAX,parraypairs',
fstv => '0,FSTV,parraypairs',
- rtty => '0,RTTY,parraypairs',
- pactor => '0,PACTOR,parraypairs',
packet => '0,PACKET,parraypairs',
+ pactor => '0,PACTOR,parraypairs',
repeater => '0,REPEATER,parraypairs',
- fax => '0,FAX,parraypairs',
- beacon => '0,BEACON,parraypairs',
- band => '0,BAND,parraypairs',
+ rtty => '0,RTTY,parraypairs',
+ ssb => '0,SSB,parraypairs',
+ sstv => '0,SSTV,parraypairs',
);
# load the band data
return $valid{$ele};
}
-no strict;
+#no strict;
sub AUTOLOAD
{
- my $self = shift;
+ no strict;
my $name = $AUTOLOAD;
return if $name =~ /::DESTROY$/;
- $name =~ s/.*:://o;
+ $name =~ s/^.*:://o;
- @_ ? $self->{$name} = shift : $self->{$name} ;
+ # 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}};
+ goto &$AUTOLOAD;
}
1;