+
+ # initialise the cache if required
+ if ($spotcachedays) {
+ $spotcachedays = 2 if $spotcachedays < 2;
+ my $now = $today->sub($spotcachedays);
+ while ($now->cmp($today) >= 0) {
+ my $fh = $fp->open($now);
+ if ($fh) {
+ my @in;
+ while (<$fh>) {
+ chomp;
+ my @s = split /\^/;
+ if (@s < 14) {
+ my @a = (Prefix::cty_data($s[1]))[1..3];
+ my @b = (Prefix::cty_data($s[4]))[1..3];
+ push @s, $b[1] if @s < 7;
+ push @s, '' if @s < 8;
+ push @s, @a[0,1], @b[0,1] if @s < 12;
+ push @s, $a[2], $b[2] if @s < 14;
+ }
+ push @in, \@s;
+ }
+ $fh->close;
+ $spotcache{"$now->[0]|$now->[1]"} = \@in;
+ }
+ $now->add(1);
+ }
+ }