package Prefix;
-use Carp;
+use IO::File;
use DXVars;
use DB_File;
use Data::Dumper;
-use Carp;
+use DXDebug;
use strict;
use vars qw($db %prefix_loc %pre);
sub load
{
if ($db) {
+ undef $db;
untie %pre;
%pre = ();
%prefix_loc = ();
sub store
{
my ($k, $l);
- my $fh = new FileHandle;
+ my $fh = new IO::File;
my $fn = "$main::data/prefix_data.pl";
confess "Prefix system not started" if !$db;
$fh->print("$str ],\n");
}
$fh->print(");\n");
- $fh->close;
+ undef $fh;
+ untie %pre;
}
# what you get is a list that looks like:-
# remove any /0-9 /P /A /M /MM /AM suffixes etc
if (@parts > 1) {
+ $p = $parts[0];
+ shift @parts if $p =~ /^(WEB|NET)$/o;
$p = $parts[$#parts];
- pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
+ pop @parts if $p =~ /^(\d+|[JPABM]|AM|MM|BCN|JOTA|SIX|WEB|NET|Q\w+)$/o;
$p = $parts[$#parts];
- pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
+ pop @parts if $p =~ /^(\d+|[JPABM]|AM|MM|BCN|JOTA|SIX|WEB|NET|Q\w+)$/o;
# can we resolve them by direct lookup
foreach $p (@parts) {
itu => '0,ITU',
cq => '0,CQ',
utcoff => '0,UTC offset',
+ cont => '0,Continent',
);
no strict;
$name =~ s/.*:://o;
confess "Non-existant field '$AUTOLOAD'" if !$valid{$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}} ;
if (@_) {
$self->{$name} = shift;
}