use DXVars;
use DB_File;
use Data::Dumper;
+use Carp;
use strict;
use vars qw($db %prefix_loc %pre);
%prefix_loc = ();
}
$db = tie(%pre, "DB_File", undef, O_RDWR|O_CREAT, 0666, $DB_BTREE) or confess "can't tie \%pre ($!)";
- confess $@ if $@;
- do "$main::data/prefix_data.pl";
+ my $out = $@ if $@;
+ do "$main::data/prefix_data.pl" if !$out;
+ $out = $@ if $@;
# print Data::Dumper->Dump([\%pre, \%prefix_loc], [qw(pre prefix_loc)]);
+ return $out;
}
sub store
# remove any /0-9 /P /A /M /MM /AM suffixes etc
if (@parts > 1) {
$p = $parts[$#parts];
- pop @parts if $p =~ /^\d+|[PABM]|AM|MM|BCN|SIX$/o;
+ pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
$p = $parts[$#parts];
- pop @parts if $p =~ /^\d+|[PABM]|AM|MM|BCN|SIX$/o;
+ pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
# can we resolve them by direct lookup
foreach $p (@parts) {