X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FQSL.pm;h=0de926888d48ae195c33bce72b1f1e3e4b20932f;hb=1172aa77de530206b0dbb648d8489922a518d502;hp=8849be0853cc5ce930e30701db57eab05ba7a247;hpb=e3beb3c736ca8e9ac9665d5c55f5d0f3cdb3f783;p=spider.git diff --git a/perl/QSL.pm b/perl/QSL.pm index 8849be08..0de92688 100644 --- a/perl/QSL.pm +++ b/perl/QSL.pm @@ -38,7 +38,7 @@ sub init dbg("load Storable from CPAN"); return undef; } - import Storable qw(nfreeze thaw); + import Storable qw(nfreeze freeze thaw); my %u; if ($mode) { $dbm = tie (%u, 'DB_File', $ufn, O_CREAT|O_RDWR, 0666, $DB_BTREE) or confess "can't open qsl file: $qslfn ($!)"; @@ -68,9 +68,15 @@ sub update my $t = shift; my $by = shift; - my @tok = map {/^BUR/ || is_callsign($_) ? $_ : ()} split(/\b/, uc $line); + my @tok = map {/^(?:HC|BUR|QRZ|HOME)/ || is_callsign($_) ? $_ : ()} split(/\b/, uc $line); foreach my $man (@tok) { - $man = 'BUREAU' if $man =~ /^BUR/; + if ($man =~ /^BUR/) { + $man = 'BUREAU'; + } elsif ($man eq 'HC' || $man =~ /^HOM/) { + $man = 'HOME CALL'; + } elsif ($man =~ /^QRZ/) { + $man = 'QRZ.com'; + } my ($r) = grep {$_->[0] eq $man} @{$self->[1]}; if ($r) { $r->[1]++; @@ -80,7 +86,7 @@ sub update } } else { $r = [$man, 1, $t, $by]; - push @{$self->[1]}, $r; + unshift @{$self->[1]}, $r; } } $self->put; @@ -88,8 +94,8 @@ sub update sub get { - my $key = uc shift; return undef unless $dbm; + my $key = uc shift; my $value; my $r = $dbm->get($key, $value);