fiz strange carp errors on startup with no route_*_cache files
[spider.git] / perl / Route / Node.pm
index baa862ae754ef76279ec4a07dab345457f294c91..af01a1d22d47ce199478c7ac9e394c7783b2c55c 100644 (file)
@@ -411,7 +411,7 @@ sub write_cache
            }
        };
        if (!$@ && @s) {
-               my $fh = IO::File->new(">$cachefn") or confess("writing $cachefn $!");
+               my $fh = IO::File->new(">$cachefn") or dbg("Route::Node: Error writing $cachefn $!"), return;
                print $fh "$_" for (sort @s);
                $fh->close;
        } else {
@@ -431,14 +431,14 @@ sub read_cache
        my $ta = [ gettimeofday ];
        my $count;
        
-       my $fh = IO::File->new("$cachefn") or confess("reading $cachefn $!");
+       my $fh = IO::File->new("$cachefn") or dbg("Route::Node ERROR reading $cachefn $!"), return;
        while (my $l = <$fh>) {
                chomp $l;
                my ($k, $v) = split /:/, $l, 2;
-               $list{$k} = bless $json->decode($v) or confess("json error decoding '$v'");
+               $list{$k} = bless $json->decode($v) or carp("Route::Node json error $! decoding '$v'"), next;
                ++$count;
        }
-       $fh->close;
+       $fh->close if $fh;;
 
        my $diff = _diffms($ta);
        dbg("Route::Node::read_cache time to read $count records from $cachefn : $diff mS");